本文整理汇总了Java中com.esotericsoftware.kryo.Kryo.reference方法的典型用法代码示例。如果您正苦于以下问题:Java Kryo.reference方法的具体用法?Java Kryo.reference怎么用?Java Kryo.reference使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.esotericsoftware.kryo.Kryo
的用法示例。
在下文中一共展示了Kryo.reference方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
@Override
public Queue read(Kryo kryo, Input input, Class<Queue> type) {
int length = input.readVarInt(true);
Registration registration = kryo.readClass(input);
Class cls = registration == null ? Object.class : registration.getType();
Queue queue = new Queue(length, cls);
kryo.reference(queue);
Class elementClass = null;
Serializer serializer = null;
if (genericType != null) {
elementClass = genericType;
serializer = kryo.getSerializer(genericType);
genericType = null;
}
if (serializer != null) {
for (int i = 0; i < length; i++)
queue.addLast(kryo.readObjectOrNull(input, elementClass, serializer));
} else {
for (int i = 0; i < length; i++)
queue.addLast(kryo.readClassAndObject(input));
}
return queue;
}
示例2: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
@Override
public SortedIntList read(Kryo kryo, Input input, Class<SortedIntList> type) {
int length = input.readVarInt(true);
SortedIntList list = new SortedIntList();
kryo.reference(list);
Class elementClass = null;
Serializer serializer = null;
if (genericType != null) {
elementClass = genericType;
serializer = kryo.getSerializer(genericType);
genericType = null;
}
for (int i = 0; i < length; i++) {
int index = input.readInt();
Object value = serializer != null ?
kryo.readObjectOrNull(input, elementClass, serializer) : kryo.readClassAndObject(input);
list.insert(index, value);
}
return list;
}
示例3: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
@Override
public T read(Kryo kryo, Input input, Class<T> type) {
int length = input.readVarInt(true);
boolean ordered = input.readBoolean();
Class cls = kryo.readClass(input).getType();
T array = create(ordered, length, cls);
kryo.reference(array);
Class elementClass = null;
Serializer serializer = null;
if (genericType != null) {
elementClass = genericType;
serializer = kryo.getSerializer(genericType);
genericType = null;
}
if (serializer != null) {
for (int i = 0; i < length; i++)
array.add(kryo.readObjectOrNull(input, elementClass, serializer));
} else {
for (int i = 0; i < length; i++)
array.add(kryo.readClassAndObject(input));
}
return array;
}
示例4: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
@Override
public T read(Kryo kryo, Input input, Class<T> type) {
int length = input.readVarInt(true);
input.readBoolean(); // currently unused
T objectSet = create(length);
kryo.reference(objectSet);
Class elementClass = null;
Serializer serializer = null;
if (genericType != null) {
elementClass = genericType;
serializer = kryo.getSerializer(genericType);
genericType = null;
}
if (serializer != null) {
for (int i = 0; i < length; i++)
objectSet.add(kryo.readObject(input, elementClass, serializer));
} else {
for (int i = 0; i < length; i++)
objectSet.add(kryo.readClassAndObject(input));
}
return objectSet;
}
示例5: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
public T read (Kryo kryo, Input input, Class<T> type) {
int length = input.readVarInt(true);
input.readBoolean(); // currently unused
T map = create(length);
Class keyClass = null;
Class valueClass = null;
Serializer keySerializer = null;
if (keyGenericType != null) {
keyClass = keyGenericType;
if (keySerializer == null) keySerializer = kryo.getSerializer(keyClass);
keyGenericType = null;
}
Serializer valueSerializer = null;
if (valueGenericType != null) {
valueClass = valueGenericType;
if (valueSerializer == null) valueSerializer = kryo.getSerializer(valueClass);
valueGenericType = null;
}
kryo.reference(map);
for (int i = 0; i < length; i++) {
Object key;
if (keySerializer != null) {
key = kryo.readObject(input, keyClass, keySerializer);
} else
key = kryo.readClassAndObject(input);
Object value;
if (valueSerializer != null) {
value = kryo.readObjectOrNull(input, valueClass, valueSerializer);
} else
value = kryo.readClassAndObject(input);
map.put(key, value);
}
return map;
}
示例6: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
public ObjectFloatMap read (Kryo kryo, Input input, Class<ObjectFloatMap> type) {
int length = input.readVarInt(true);
input.readBoolean(); // currently unused
ObjectFloatMap map = create(length);
Class keyClass = null;
Serializer keySerializer = null;
if (keyGenericType != null) {
keyClass = keyGenericType;
if (keySerializer == null) keySerializer = kryo.getSerializer(keyClass);
keyGenericType = null;
}
kryo.reference(map);
for (int i = 0; i < length; i++) {
Object key;
if (keySerializer != null) {
key = kryo.readObject(input, keyClass, keySerializer);
} else
key = kryo.readClassAndObject(input);
float value = input.readFloat();
map.put(key, value);
}
return map;
}
示例7: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
@Override
public T read(final Kryo kryo, final Input input, final Class<T> type) {
try {
final T object = kryo.newInstance(type);
kryo.reference(object);
object.readFields(new DataInputStream(input));
return object;
} catch (final IOException e) {
throw new RuntimeException("unable to deserialize Writable object", e);
}
}
示例8: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
@Override
public ImmutableMap<Object, Object> read(Kryo kryo, Input input, Class<ImmutableMap<Object, ? extends Object>> type) {
Map map = kryo.readObject(input, HashMap.class);
final ImmutableMap<Object, Object> result = ImmutableMap.copyOf(map);
kryo.reference(result);
return result;
}
示例9: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
public IdentityMap read (Kryo kryo, Input input, Class<IdentityMap> type) {
int length = input.readVarInt(true);
input.readBoolean(); // currently unused
IdentityMap map = new IdentityMap(length);
Class keyClass = null;
Class valueClass = null;
Serializer keySerializer = null;
if (keyGenericType != null) {
keyClass = keyGenericType;
if (keySerializer == null) keySerializer = kryo.getSerializer(keyClass);
keyGenericType = null;
}
Serializer valueSerializer = null;
if (valueGenericType != null) {
valueClass = valueGenericType;
if (valueSerializer == null) valueSerializer = kryo.getSerializer(valueClass);
valueGenericType = null;
}
kryo.reference(map);
for (int i = 0; i < length; i++) {
Object key;
if (keySerializer != null) {
key = kryo.readObject(input, keyClass, keySerializer);
} else
key = kryo.readClassAndObject(input);
Object value;
if (valueSerializer != null) {
value = kryo.readObjectOrNull(input, valueClass, valueSerializer);
} else
value = kryo.readClassAndObject(input);
map.put(key, value);
}
return map;
}
示例10: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
public LongMap read (Kryo kryo, Input input, Class<LongMap> type) {
int length = input.readVarInt(true);
input.readBoolean(); // currently unused
LongMap map = new LongMap(length);
Class valueClass = null;
Serializer valueSerializer = null;
if (valueGenericType != null) {
valueClass = valueGenericType;
if (valueSerializer == null) valueSerializer = kryo.getSerializer(valueClass);
valueGenericType = null;
}
kryo.reference(map);
for (int i = 0; i < length; i++) {
long key = input.readLong();
Object value;
if (valueSerializer != null) {
value = kryo.readObjectOrNull(input, valueClass, valueSerializer);
} else
value = kryo.readClassAndObject(input);
map.put(key, value);
}
return map;
}
示例11: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
public ObjectIntMap read (Kryo kryo, Input input, Class<ObjectIntMap> type) {
int length = input.readVarInt(true);
input.readBoolean(); // currently unused
ObjectIntMap map = create(length);
Class keyClass = null;
Serializer keySerializer = null;
if (keyGenericType != null) {
keyClass = keyGenericType;
if (keySerializer == null) keySerializer = kryo.getSerializer(keyClass);
keyGenericType = null;
}
kryo.reference(map);
for (int i = 0; i < length; i++) {
Object key;
if (keySerializer != null) {
key = kryo.readObject(input, keyClass, keySerializer);
} else
key = kryo.readClassAndObject(input);
int value = input.readInt();
map.put(key, value);
}
return map;
}
示例12: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
@Override
public T read(final Kryo kryo, final Input input, final Class<T> type) {
final boolean isNone = kryo.readObject(input, Boolean.class);
if (isNone) {
return (T)Convention.NONE;
}
final T result = super.read(kryo, input, type);
final T normalized = (T) result.getTraitDef().canonize(result);
kryo.reference(normalized);
return normalized;
}
示例13: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
@Override
public T read(final Kryo kryo, final Input input, final Class<T> type) {
final boolean isKnown = kryo.readObject(input, Boolean.class);
if (isKnown) {
final Integer ordinal = kryo.readObject(input, Integer.class);
final SqlOperator operator = OperatorPopulator.BACKWARD.get(ordinal);
if (operator != null) {
kryo.reference(operator);
return (T)operator;
}
throw new IllegalStateException(String.format("Unable to locate operator with ordinal [%s]", ordinal));
}
return super.read(kryo, input, type);
}
示例14: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
@Override
public T read(final Kryo kryo, final Input input, final Class<T> type) {
// do not use delegate.read because we do not want it to cache the object. Rather, we will cache the normalized type.
final T dataType = kryo.newInstance(type);
final FieldSerializer.CachedField[] fields = delegate.getFields();
for (int i = 0, n = fields.length; i < n; i++) {
fields[i].read(input, dataType);
}
// be gentle to calcite and normalize the returned data type. normalization here means to use same type instances.
final T result = (T) typeFactory.copyType(dataType);
kryo.reference(result);
return result;
}
示例15: read
import com.esotericsoftware.kryo.Kryo; //导入方法依赖的package包/类
@Override
public T read(final Kryo kryo, final Input input, final Class<T> type) {
final T result = factory.get();
kryo.reference(result);
return result;
}