ByteBufferSerializer
org.apache.pekko.serialization.ByteBufferSerializer
trait ByteBufferSerializer
Serializer between an object and a ByteBuffer representing that object.
Implementations should typically extend SerializerWithStringManifest and in addition to the ByteBuffer based toBinary and fromBinary methods also implement the array based toBinary and fromBinary methods. The array based methods will be used when ByteBuffer is not used, e.g. in Pekko Persistence.
Note that the array based methods can for example be implemented by delegation like this:
// you need to know the maximum size in bytes of the serialized messages
val pool = new org.apache.pekko.io.DirectByteBufferPool(defaultBufferSize = 1024 * 1024, maxPoolEntries = 10)
// Implement this method for compatibility with `SerializerWithStringManifest`.
override def toBinary(o: AnyRef): Array[Byte] = {
val buf = pool.acquire()
try {
toBinary(o, buf)
buf.flip()
val bytes = new Array[Byte](buf.remaining)
buf.get(bytes)
bytes
} finally {
pool.release(buf)
}
}
// Implement this method for compatibility with `SerializerWithStringManifest`.
override def fromBinary(bytes: Array[Byte], manifest: String): AnyRef =
fromBinary(ByteBuffer.wrap(bytes), manifest)
Attributes
- Source
- Serializer.scala
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
class ByteArraySerializerclass DisabledJavaSerializer
Members list
In this article