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 class
KryoNamespace.Builder
KryoNamespace builder.
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_BUFFER_SIZE
Default buffer size used for serialization.static int
FLOATING_ID
ID to use if this KryoNamespace does not define registration id.static int
INITIAL_ID
Smallest ID free to use for user defined registrations.static int
MAX_BUFFER_SIZE
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.esotericsoftware.kryo.Kryo
borrow()
com.esotericsoftware.kryo.Kryo
create()
Creates a Kryo instance.<T> T
deserialize(byte[] bytes)
Deserializes given byte array to Object using Kryo instance in pool.<T> T
deserialize(InputStream stream)
Deserializes given InputStream to an Object using Kryo instance in pool.<T> T
deserialize(InputStream stream, int bufferSize)
Deserializes given InputStream to an Object using Kryo instance in pool.<T> T
deserialize(ByteBuffer buffer)
Deserializes given byte buffer to Object using Kryo instance in pool.static KryoNamespace.Builder
newBuilder()
Creates a newKryoNamespace
builder.KryoNamespace
populate(int instances)
Populates the Kryo pool.void
release(com.esotericsoftware.kryo.Kryo kryo)
<T> T
run(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.void
serialize(Object obj, OutputStream stream)
Serializes given object to OutputStream using Kryo instance in pool.void
serialize(Object obj, OutputStream stream, int bufferSize)
Serializes given object to OutputStream using Kryo instance in pool.void
serialize(Object obj, ByteBuffer buffer)
Serializes given object to byte buffer using Kryo instance in pool.int
size()
Gets the number of classes registered in this Kryo namespace.String
toString()
-
-
-
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 newKryoNamespace
builder.- 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:
create
in interfacecom.esotericsoftware.kryo.pool.KryoFactory
- Returns:
- Kryo instance
-
borrow
public com.esotericsoftware.kryo.Kryo borrow()
- Specified by:
borrow
in interfacecom.esotericsoftware.kryo.pool.KryoPool
-
release
public void release(com.esotericsoftware.kryo.Kryo kryo)
- Specified by:
release
in interfacecom.esotericsoftware.kryo.pool.KryoPool
-
run
public <T> T run(com.esotericsoftware.kryo.pool.KryoCallback<T> callback)
- Specified by:
run
in interfacecom.esotericsoftware.kryo.pool.KryoPool
-
-