本文整理汇总了Java中com.esotericsoftware.kryo.util.ObjectMap类的典型用法代码示例。如果您正苦于以下问题:Java ObjectMap类的具体用法?Java ObjectMap怎么用?Java ObjectMap使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ObjectMap类属于com.esotericsoftware.kryo.util包,在下文中一共展示了ObjectMap类的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: read
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
@Override
public Object read(Kryo kryo, Input input, Class type) {
try {
ObjectMap graphContext = kryo.getGraphContext();
ObjectInputStream objectStream = (ObjectInputStream) graphContext.get(this);
if (objectStream == null) {
objectStream = new ObjectInputStream(input) {
@Override
protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
return ClassUtils.getClass(KryoSerialization.class.getClassLoader(), desc.getName());
}
};
graphContext.put(this, objectStream);
}
return objectStream.readObject();
} catch (Exception ex) {
throw new KryoException("Error during Java deserialization.", ex);
}
}
开发者ID:cuba-platform,项目名称:cuba,代码行数:20,代码来源:KryoSerialization.java
示例2: write
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
@SuppressWarnings({"unchecked", "rawtypes"})
@Override
public void write(Kryo kryo, Output output, T o) {
try {
ObjectMap graphContext = kryo.getGraphContext();
ObjectOutputStream objectStream = (ObjectOutputStream)graphContext.get(this);
if (objectStream == null) {
objectStream = new ObjectOutputStream(output);
graphContext.put(this, objectStream);
}
objectStream.writeObject(o);
objectStream.flush();
} catch (Exception ex) {
throw new KryoException("Error during Java serialization.", ex);
}
}
开发者ID:axbaretto,项目名称:flink,代码行数:17,代码来源:JavaSerializer.java
示例3: read
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
@SuppressWarnings({"unchecked", "rawtypes"})
@Override
public T read(Kryo kryo, Input input, Class aClass) {
try {
ObjectMap graphContext = kryo.getGraphContext();
ObjectInputStream objectStream = (ObjectInputStream)graphContext.get(this);
if (objectStream == null) {
// make sure we use Kryo's classloader
objectStream = new InstantiationUtil.ClassLoaderObjectInputStream(input, kryo.getClassLoader());
graphContext.put(this, objectStream);
}
return (T) objectStream.readObject();
} catch (Exception ex) {
throw new KryoException("Error during Java deserialization.", ex);
}
}
开发者ID:axbaretto,项目名称:flink,代码行数:17,代码来源:JavaSerializer.java
示例4: write
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
public void write (Kryo kryo, Output output, T object) {
CachedField[] fields = getFields();
ObjectMap context = kryo.getGraphContext();
if (!context.containsKey(this)) {
context.put(this, null);
if (TRACE) trace("kryo", "Write " + fields.length + " field names.");
output.writeVarInt(fields.length, true);
for (int i = 0, n = fields.length; i < n; i++)
output.writeString(fields[i].field.getName());
}
OutputChunked outputChunked = new OutputChunked(output, 1024);
for (int i = 0, n = fields.length; i < n; i++) {
fields[i].write(outputChunked, object);
outputChunked.endChunks();
}
}
开发者ID:HoratiusTang,项目名称:EsperDist,代码行数:18,代码来源:CompatibleFieldSerializer.java
示例5: ObjectIntMap
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
/** Creates a new map with the specified initial capacity and load factor. This map will hold initialCapacity * loadFactor items
* before growing the backing table. */
public ObjectIntMap (int initialCapacity, float loadFactor) {
if (initialCapacity < 0) throw new IllegalArgumentException("initialCapacity must be >= 0: " + initialCapacity);
if (initialCapacity > 1 << 30) throw new IllegalArgumentException("initialCapacity is too large: " + initialCapacity);
capacity = ObjectMap.nextPowerOfTwo(initialCapacity);
if (loadFactor <= 0) throw new IllegalArgumentException("loadFactor must be > 0: " + loadFactor);
this.loadFactor = loadFactor;
threshold = (int)(capacity * loadFactor);
mask = capacity - 1;
hashShift = 31 - Integer.numberOfTrailingZeros(capacity);
stashCapacity = Math.max(3, (int)Math.ceil(Math.log(capacity)) * 2);
pushIterations = Math.max(Math.min(capacity, 8), (int)Math.sqrt(capacity) / 8);
keyTable = (K[])new Object[capacity + stashCapacity];
valueTable = new int[keyTable.length];
}
开发者ID:abejfehr,项目名称:magic-realm,代码行数:20,代码来源:ObjectIntMap.java
示例6: ObjectIntMap
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
/**
* Creates a new map with the specified initial capacity and load factor.
* This map will hold initialCapacity * loadFactor items before growing the
* backing table.
*/
@SuppressWarnings("unchecked")
public ObjectIntMap(int initialCapacity, float loadFactor) {
if (initialCapacity < 0)
throw new IllegalArgumentException("initialCapacity must be >= 0: "
+ initialCapacity);
if (initialCapacity > 1 << 30)
throw new IllegalArgumentException("initialCapacity is too large: "
+ initialCapacity);
capacity = ObjectMap.nextPowerOfTwo(initialCapacity);
if (loadFactor <= 0)
throw new IllegalArgumentException("loadFactor must be > 0: "
+ loadFactor);
this.loadFactor = loadFactor;
threshold = (int) (capacity * loadFactor);
mask = capacity - 1;
hashShift = 31 - Integer.numberOfTrailingZeros(capacity);
stashCapacity = Math.max(3, (int) Math.ceil(Math.log(capacity)) * 2);
pushIterations = Math.max(Math.min(capacity, 8),
(int) Math.sqrt(capacity) / 8);
keyTable = (K[]) new Object[capacity + stashCapacity];
valueTable = new int[keyTable.length];
}
开发者ID:MosaicOwl,项目名称:the-erder,代码行数:31,代码来源:ObjectIntMap.java
示例7: read
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
@Override
public Object read(Kryo kryo, Input input, Class type)
{
try {
ObjectMap graphContext = kryo.getGraphContext();
ObjectInputStream objectStream = (ObjectInputStream)graphContext.get(this);
if (objectStream == null) {
objectStream = new ObjectInputStreamWithKryoClassLoader(input, kryo);
graphContext.put(this, objectStream);
}
return objectStream.readObject();
} catch (Exception ex) {
throw new KryoException("Error during Java deserialization.", ex);
}
}
开发者ID:apache,项目名称:apex-malhar,代码行数:16,代码来源:KryoJavaSerializer.java
示例8: write
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
public void write (Kryo kryo, Output output, Object object) {
try {
ObjectMap graphContext = kryo.getGraphContext();
ObjectOutputStream objectStream = (ObjectOutputStream)graphContext.get(this);
if (objectStream == null) {
objectStream = new ObjectOutputStream(output);
graphContext.put(this, objectStream);
}
objectStream.writeObject(object);
objectStream.flush();
} catch (Exception ex) {
throw new KryoException("Error during Java serialization.", ex);
}
}
开发者ID:HoratiusTang,项目名称:EsperDist,代码行数:15,代码来源:JavaSerializer.java
示例9: read
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
public Object read (Kryo kryo, Input input, Class type) {
try {
ObjectMap graphContext = kryo.getGraphContext();
ObjectInputStream objectStream = (ObjectInputStream)graphContext.get(this);
if (objectStream == null) {
objectStream = new ObjectInputStream(input);
graphContext.put(this, objectStream);
}
return objectStream.readObject();
} catch (Exception ex) {
throw new KryoException("Error during Java deserialization.", ex);
}
}
开发者ID:HoratiusTang,项目名称:EsperDist,代码行数:14,代码来源:JavaSerializer.java
示例10: buildValidFields
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
private List<Field> buildValidFields (boolean transientFields, List<Field> allFields, ObjectMap context, IntArray useAsm) {
List<Field> result = new ArrayList(allFields.size());
for (int i = 0, n = allFields.size(); i < n; i++) {
Field field = allFields.get(i);
int modifiers = field.getModifiers();
if (Modifier.isTransient(modifiers) != transientFields) continue;
if (Modifier.isStatic(modifiers)) continue;
if (field.isSynthetic() && ignoreSyntheticFields) continue;
if (!field.isAccessible()) {
if (!setFieldsAsAccessible) continue;
try {
field.setAccessible(true);
} catch (AccessControlException ex) {
continue;
}
}
Optional optional = field.getAnnotation(Optional.class);
if (optional != null && !context.containsKey(optional.value())) continue;
result.add(field);
// BOZO - Must be public?
useAsm.add(!Modifier.isFinal(modifiers) && Modifier.isPublic(modifiers)
&& Modifier.isPublic(field.getType().getModifiers()) ? 1 : 0);
}
return result;
}
开发者ID:HoratiusTang,项目名称:EsperDist,代码行数:32,代码来源:FieldSerializer.java
示例11: getCachedSerializer
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
private JavaSerializer getCachedSerializer (Class type) {
if (javaSerializerByType == null) {
javaSerializerByType = new ObjectMap<Class, JavaSerializer>();
return null;
}
return javaSerializerByType.get(type);
}
开发者ID:HoratiusTang,项目名称:EsperDist,代码行数:9,代码来源:ExternalizableSerializer.java
示例12: buildValidFields
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
private List<Field> buildValidFields (boolean transientFields, List<Field> allFields, ObjectMap context, IntArray useAsm) {
List<Field> result = new ArrayList(allFields.size());
for (int i = 0, n = allFields.size(); i < n; i++) {
Field field = allFields.get(i);
int modifiers = field.getModifiers();
if (Modifier.isTransient(modifiers) && !transientFields) continue;
if (Modifier.isStatic(modifiers)) continue;
if (field.isSynthetic() && ignoreSyntheticFields) continue;
if (!field.isAccessible()) {
if (!setFieldsAsAccessible) continue;
try {
field.setAccessible(true);
} catch (AccessControlException ex) {
continue;
}
}
Optional optional = field.getAnnotation(Optional.class);
if (optional != null && !context.containsKey(optional.value())) continue;
result.add(field);
// BOZO - Must be public?
useAsm.add(!Modifier.isFinal(modifiers) && Modifier.isPublic(modifiers)
&& Modifier.isPublic(field.getType().getModifiers()) ? 1 : 0);
}
return result;
}
开发者ID:HoratiusTang,项目名称:EsperDist,代码行数:32,代码来源:FieldSerializer.java
示例13: shrink
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
/** Reduces the size of the backing arrays to be the specified capacity or less. If the capacity is already less, nothing is
* done. If the map contains more items than the specified capacity, the next highest power of two capacity is used instead. */
public void shrink (int maximumCapacity) {
if (maximumCapacity < 0) throw new IllegalArgumentException("maximumCapacity must be >= 0: " + maximumCapacity);
if (size > maximumCapacity) maximumCapacity = size;
if (capacity <= maximumCapacity) return;
maximumCapacity = ObjectMap.nextPowerOfTwo(maximumCapacity);
resize(maximumCapacity);
}
开发者ID:abejfehr,项目名称:magic-realm,代码行数:10,代码来源:ObjectIntMap.java
示例14: shrink
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
/**
* Reduces the size of the backing arrays to be the specified capacity or
* less. If the capacity is already less, nothing is done. If the map
* contains more items than the specified capacity, the next highest power
* of two capacity is used instead.
*/
public void shrink(int maximumCapacity) {
if (maximumCapacity < 0)
throw new IllegalArgumentException("maximumCapacity must be >= 0: "
+ maximumCapacity);
if (size > maximumCapacity)
maximumCapacity = size;
if (capacity <= maximumCapacity)
return;
maximumCapacity = ObjectMap.nextPowerOfTwo(maximumCapacity);
resize(maximumCapacity);
}
开发者ID:MosaicOwl,项目名称:the-erder,代码行数:18,代码来源:ObjectIntMap.java
示例15: read
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
public T read (Kryo kryo, Input input, Class<T> type) {
T object = create(kryo, input, type);
kryo.reference(object);
ObjectMap context = kryo.getGraphContext();
CachedField[] fields = (CachedField[])context.get(this);
if (fields == null) {
int length = input.readVarInt(true);
if (TRACE) trace("kryo", "Read " + length + " field names.");
String[] names = new String[length];
for (int i = 0; i < length; i++)
names[i] = input.readString();
fields = new CachedField[length];
CachedField[] allFields = getFields();
outer:
for (int i = 0, n = names.length; i < n; i++) {
String schemaName = names[i];
for (int ii = 0, nn = allFields.length; ii < nn; ii++) {
if (allFields[ii].field.getName().equals(schemaName)) {
fields[i] = allFields[ii];
continue outer;
}
}
if (TRACE) trace("kryo", "Ignore obsolete field: " + schemaName);
}
context.put(this, fields);
}
InputChunked inputChunked = new InputChunked(input, 1024);
boolean hasGenerics = getGenerics() != null;
for (int i = 0, n = fields.length; i < n; i++) {
CachedField cachedField = fields[i];
if(cachedField != null && hasGenerics) {
// Generic type used to instantiate this field could have
// been changed in the meantime. Therefore take the most
// up-to-date definition of a field
cachedField = getField(cachedField.field.getName());
}
if (cachedField == null) {
if (TRACE) trace("kryo", "Skip obsolete field.");
inputChunked.nextChunks();
continue;
}
cachedField.read(inputChunked, object);
inputChunked.nextChunks();
}
return object;
}
开发者ID:HoratiusTang,项目名称:EsperDist,代码行数:49,代码来源:CompatibleFieldSerializer.java
示例16: read
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
public T read (Kryo kryo, Input input, Class<T> type) {
T object = create(kryo, input, type);
kryo.reference(object);
ObjectMap context = kryo.getGraphContext();
CachedField[] fields = (CachedField[])context.get(this);
if (fields == null) {
int length = input.readVarInt(true);
if (TRACE) trace("kryo", "Read " + length + " field names.");
String[] names = new String[length];
for (int i = 0; i < length; i++)
names[i] = input.readString();
fields = new CachedField[length];
CachedField[] allFields = getFields();
outer:
for (int i = 0, n = names.length; i < n; i++) {
String schemaName = names[i];
for (int ii = 0, nn = allFields.length; ii < nn; ii++) {
if (allFields[ii].field.getName().equals(schemaName)) {
fields[i] = allFields[ii];
continue outer;
}
}
if (TRACE) trace("kryo", "Ignore obsolete field: " + schemaName);
}
context.put(this, fields);
}
InputChunked inputChunked = new InputChunked(input, 1024);
for (int i = 0, n = fields.length; i < n; i++) {
CachedField cachedField = fields[i];
if (cachedField == null) {
if (TRACE) trace("kryo", "Skip obsolete field.");
inputChunked.nextChunks();
continue;
}
cachedField.read(inputChunked, object);
inputChunked.nextChunks();
}
return object;
}
开发者ID:HoratiusTang,项目名称:EsperDist,代码行数:42,代码来源:CompatibleFieldSerializer.java
示例17: ensureCapacity
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
/** Increases the size of the backing array to acommodate the specified number of additional items. Useful before adding many
* items to avoid multiple backing array resizes. */
public void ensureCapacity (int additionalCapacity) {
int sizeNeeded = size + additionalCapacity;
if (sizeNeeded >= threshold) resize(ObjectMap.nextPowerOfTwo((int)(sizeNeeded / loadFactor)));
}
开发者ID:abejfehr,项目名称:magic-realm,代码行数:7,代码来源:ObjectIntMap.java
示例18: ensureCapacity
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
/**
* Increases the size of the backing array to acommodate the specified
* number of additional items. Useful before adding many items to avoid
* multiple backing array resizes.
*/
public void ensureCapacity(int additionalCapacity) {
int sizeNeeded = size + additionalCapacity;
if (sizeNeeded >= threshold)
resize(ObjectMap.nextPowerOfTwo((int) (sizeNeeded / loadFactor)));
}
开发者ID:MosaicOwl,项目名称:the-erder,代码行数:11,代码来源:ObjectIntMap.java
示例19: rebuildCachedFields
import com.esotericsoftware.kryo.util.ObjectMap; //导入依赖的package包/类
/** Called when the list of cached fields must be rebuilt. This is done any time settings are changed that affect which fields
* will be used. It is called from the constructor for FieldSerializer, but not for subclasses. Subclasses must call this from
* their constructor. */
protected void rebuildCachedFields () {
if (TRACE && generics != null) trace("kryo", "generic type parameters are: " + Arrays.toString(generics));
if (type.isInterface()) {
fields = new CachedField[0]; // No fields to serialize.
return;
}
hasObjectFields = false;
// For generic classes, generate a mapping from type variable names to the concrete types
// This mapping is the same for the whole class.
Generics genScope = buildGenericsScope(type, generics);
genericsScope = genScope;
// Push proper scopes at serializer construction time
if (genericsScope != null) kryo.pushGenericsScope(type, genericsScope);
// Collect all fields.
List<Field> allFields = new ArrayList();
Class nextClass = type;
while (nextClass != Object.class) {
Field[] declaredFields = nextClass.getDeclaredFields();
if (declaredFields != null) {
for (Field f : declaredFields) {
if (Modifier.isStatic(f.getModifiers())) continue;
allFields.add(f);
}
}
nextClass = nextClass.getSuperclass();
}
ObjectMap context = kryo.getContext();
IntArray useAsm = new IntArray();
// Sort fields by their offsets
if (useMemRegions && !useAsmEnabled && unsafe() != null) {
Field[] allFieldsArray = softFieldsByOffset(allFields);
allFields = Arrays.asList(allFieldsArray);
}
// TODO: useAsm is modified as a side effect, this should be pulled out of buildValidFields
List<Field> validFields = buildValidFields(false, allFields, context, useAsm);
List<Field> validTransientFields = buildValidFields(true, allFields, context, useAsm);
// Use ReflectASM for any public fields.
if (useAsmEnabled && !Util.isAndroid && Modifier.isPublic(type.getModifiers()) && useAsm.indexOf(1) != -1) {
try {
access = FieldAccess.get(type);
} catch (RuntimeException ignored) {
}
}
List<CachedField> cachedFields = new ArrayList(validFields.size());
List<CachedField> cachedTransientFields = new ArrayList(validTransientFields.size());
createCachedFields(useAsm, validFields, cachedFields, 0);
createCachedFields(useAsm, validTransientFields, cachedTransientFields, validFields.size());
Collections.sort(cachedFields, this);
fields = cachedFields.toArray(new CachedField[cachedFields.size()]);
Collections.sort(cachedTransientFields, this);
transientFields = cachedTransientFields.toArray(new CachedField[cachedTransientFields.size()]);
initializeCachedFields();
if (genericsScope != null) kryo.popGenericsScope();
}
开发者ID:esialb,项目名称:kryo-mavenized,代码行数:73,代码来源:FieldSerializer.java
注:本文中的com.esotericsoftware.kryo.util.ObjectMap类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论