Package org.onlab.util
Class KryoNamespace
- java.lang.Object
-
- org.onlab.util.KryoNamespace
-
- All Implemented Interfaces:
com.esotericsoftware.kryo.pool.KryoFactory,com.esotericsoftware.kryo.pool.KryoPool
public final class KryoNamespace extends Object implements com.esotericsoftware.kryo.pool.KryoFactory, com.esotericsoftware.kryo.pool.KryoPool
Pool of Kryo instances, with classes pre-registered.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classKryoNamespace.BuilderKryoNamespace builder.
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_BUFFER_SIZEDefault buffer size used for serialization.static intFLOATING_IDID to use if this KryoNamespace does not define registration id.static intINITIAL_IDSmallest ID free to use for user defined registrations.static intMAX_BUFFER_SIZE
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.esotericsoftware.kryo.Kryoborrow()com.esotericsoftware.kryo.Kryocreate()Creates a Kryo instance.<T> Tdeserialize(byte[] bytes)Deserializes given byte array to Object using Kryo instance in pool.<T> Tdeserialize(InputStream stream)Deserializes given InputStream to an Object using Kryo instance in pool.<T> Tdeserialize(InputStream stream, int bufferSize)Deserializes given InputStream to an Object using Kryo instance in pool.<T> Tdeserialize(ByteBuffer buffer)Deserializes given byte buffer to Object using Kryo instance in pool.static KryoNamespace.BuildernewBuilder()Creates a newKryoNamespacebuilder.KryoNamespacepopulate(int instances)Populates the Kryo pool.voidrelease(com.esotericsoftware.kryo.Kryo kryo)<T> Trun(com.esotericsoftware.kryo.pool.KryoCallback<T> callback)byte[]serialize(Object obj)Serializes given object to byte array using Kryo instance in pool.byte[]serialize(Object obj, int bufferSize)Serializes given object to byte array using Kryo instance in pool.voidserialize(Object obj, OutputStream stream)Serializes given object to OutputStream using Kryo instance in pool.voidserialize(Object obj, OutputStream stream, int bufferSize)Serializes given object to OutputStream using Kryo instance in pool.voidserialize(Object obj, ByteBuffer buffer)Serializes given object to byte buffer using Kryo instance in pool.intsize()Gets the number of classes registered in this Kryo namespace.StringtoString()
-
-
-
Field Detail
-
DEFAULT_BUFFER_SIZE
public static final int DEFAULT_BUFFER_SIZE
Default buffer size used for serialization.- See Also:
serialize(Object), Constant Field Values
-
MAX_BUFFER_SIZE
public static final int MAX_BUFFER_SIZE
- See Also:
- Constant Field Values
-
FLOATING_ID
public static final int FLOATING_ID
ID to use if this KryoNamespace does not define registration id.- See Also:
- Constant Field Values
-
INITIAL_ID
public static final int INITIAL_ID
Smallest ID free to use for user defined registrations.- See Also:
- Constant Field Values
-
-
Method Detail
-
newBuilder
public static KryoNamespace.Builder newBuilder()
Creates a newKryoNamespacebuilder.- Returns:
- builder
-
populate
public KryoNamespace populate(int instances)
Populates the Kryo pool.- Parameters:
instances- to add to the pool- Returns:
- this
-
serialize
public byte[] serialize(Object obj)
Serializes given object to byte array using Kryo instance in pool.Note: Serialized bytes must be smaller than
MAX_BUFFER_SIZE.- Parameters:
obj- Object to serialize- Returns:
- serialized bytes
-
serialize
public byte[] serialize(Object obj, int bufferSize)
Serializes given object to byte array using Kryo instance in pool.- Parameters:
obj- Object to serializebufferSize- maximum size of serialized bytes- Returns:
- serialized bytes
-
serialize
public void serialize(Object obj, ByteBuffer buffer)
Serializes given object to byte buffer using Kryo instance in pool.- Parameters:
obj- Object to serializebuffer- to write to
-
serialize
public void serialize(Object obj, OutputStream stream)
Serializes given object to OutputStream using Kryo instance in pool.- Parameters:
obj- Object to serializestream- to write to
-
serialize
public void serialize(Object obj, OutputStream stream, int bufferSize)
Serializes given object to OutputStream using Kryo instance in pool.- Parameters:
obj- Object to serializestream- to write tobufferSize- size of the buffer in front of the stream
-
deserialize
public <T> T deserialize(byte[] bytes)
Deserializes given byte array to Object using Kryo instance in pool.- Type Parameters:
T- deserialized Object type- Parameters:
bytes- serialized bytes- Returns:
- deserialized Object
-
deserialize
public <T> T deserialize(ByteBuffer buffer)
Deserializes given byte buffer to Object using Kryo instance in pool.- Type Parameters:
T- deserialized Object type- Parameters:
buffer- input with serialized bytes- Returns:
- deserialized Object
-
deserialize
public <T> T deserialize(InputStream stream)
Deserializes given InputStream to an Object using Kryo instance in pool.- Type Parameters:
T- deserialized Object type- Parameters:
stream- input stream- Returns:
- deserialized Object
-
deserialize
public <T> T deserialize(InputStream stream, int bufferSize)
Deserializes given InputStream to an Object using Kryo instance in pool.- Type Parameters:
T- deserialized Object type- Parameters:
stream- input streambufferSize- size of the buffer in front of the stream- Returns:
- deserialized Object
-
size
public int size()
Gets the number of classes registered in this Kryo namespace.- Returns:
- size of namespace
-
create
public com.esotericsoftware.kryo.Kryo create()
Creates a Kryo instance.- Specified by:
createin interfacecom.esotericsoftware.kryo.pool.KryoFactory- Returns:
- Kryo instance
-
borrow
public com.esotericsoftware.kryo.Kryo borrow()
- Specified by:
borrowin interfacecom.esotericsoftware.kryo.pool.KryoPool
-
release
public void release(com.esotericsoftware.kryo.Kryo kryo)
- Specified by:
releasein interfacecom.esotericsoftware.kryo.pool.KryoPool
-
run
public <T> T run(com.esotericsoftware.kryo.pool.KryoCallback<T> callback)
- Specified by:
runin interfacecom.esotericsoftware.kryo.pool.KryoPool
-
-