Interface MessageSerializer<M>
- All Known Implementing Classes:
AbstractGraphSONMessageSerializerV4,AbstractMessageSerializer,GraphBinaryMessageSerializerV4,GraphSONMessageSerializerV4,GraphSONUntypedMessageSerializerV4,TextPlainMessageSerializer
public interface MessageSerializer<M>
Serializes data to and from Gremlin Server. Typically, the object being serialized or deserialized will be an item
from an
Iterator as returned from the ScriptEngine or an incoming RequestMessage.
MessageSerializer instances are instantiated to a cache via ServiceLoader and indexed based on
the mime types they support. If a mime type is supported more than once, the first MessageSerializer
instance loaded for that mime type is assigned. If a mime type is not found the server default is chosen. The
default may change from version to version so it is best to not rely on it when developing applications and to
always be explicit in specifying the type you wish to bind to.- Author:
- Stephen Mallette (http://stephen.genoprime.com)
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptiondefault voidConfigure the serializer with mapper settings as required.deserializeBinaryRequest(io.netty.buffer.ByteBuf msg) Deserialize a NettyByteBufinto aRequestMessage.deserializeBinaryResponse(io.netty.buffer.ByteBuf msg) Deserialize a NettyByteBufinto aRequestMessage.Gets the "mapper" that performs the underlying serialization work.String[]The list of mime types that the serializer supports.readChunk(io.netty.buffer.ByteBuf byteBuf, boolean isFirstChunk) io.netty.buffer.ByteBufserializeRequestAsBinary(RequestMessage requestMessage, io.netty.buffer.ByteBufAllocator allocator) Serialize aResponseMessageto a NettyByteBuf.io.netty.buffer.ByteBufserializeResponseAsBinary(ResponseMessage responseMessage, io.netty.buffer.ByteBufAllocator allocator) Serialize aResponseMessageto a NettyByteBuf.io.netty.buffer.ByteBufwriteChunk(Object aggregate, io.netty.buffer.ByteBufAllocator allocator) io.netty.buffer.ByteBufwriteErrorFooter(ResponseMessage responseMessage, io.netty.buffer.ByteBufAllocator allocator) io.netty.buffer.ByteBufwriteFooter(ResponseMessage responseMessage, io.netty.buffer.ByteBufAllocator allocator) io.netty.buffer.ByteBufwriteHeader(ResponseMessage responseMessage, io.netty.buffer.ByteBufAllocator allocator)
-
Field Details
-
logger
static final org.slf4j.Logger logger
-
-
Method Details
-
getMapper
M getMapper()Gets the "mapper" that performs the underlying serialization work. -
serializeResponseAsBinary
io.netty.buffer.ByteBuf serializeResponseAsBinary(ResponseMessage responseMessage, io.netty.buffer.ByteBufAllocator allocator) throws SerializationException Serialize aResponseMessageto a NettyByteBuf.- Parameters:
responseMessage- The response message to serialize to bytes.allocator- The Netty allocator for theByteBufto return back.- Throws:
SerializationException
-
serializeRequestAsBinary
io.netty.buffer.ByteBuf serializeRequestAsBinary(RequestMessage requestMessage, io.netty.buffer.ByteBufAllocator allocator) throws SerializationException Serialize aResponseMessageto a NettyByteBuf.- Parameters:
requestMessage- The request message to serialize to bytes.allocator- The Netty allocator for theByteBufto return back.- Throws:
SerializationException
-
deserializeBinaryRequest
Deserialize a NettyByteBufinto aRequestMessage.- Throws:
SerializationException
-
deserializeBinaryResponse
ResponseMessage deserializeBinaryResponse(io.netty.buffer.ByteBuf msg) throws SerializationException Deserialize a NettyByteBufinto aRequestMessage.- Throws:
SerializationException
-
mimeTypesSupported
String[] mimeTypesSupported()The list of mime types that the serializer supports. They should be ordered in preferred ordered where the greatest fidelity match is first. -
configure
Configure the serializer with mapper settings as required. The default implementation does not perform any function and it is up to the interface implementation to determine how the configuration will be executed and what its requirements are. An implementation may choose to use the list of available graphs to help initialize a serializer. The implementation should account for the possibility of a null value being provided for that parameter. -
writeHeader
io.netty.buffer.ByteBuf writeHeader(ResponseMessage responseMessage, io.netty.buffer.ByteBufAllocator allocator) throws SerializationException - Throws:
SerializationException
-
writeChunk
io.netty.buffer.ByteBuf writeChunk(Object aggregate, io.netty.buffer.ByteBufAllocator allocator) throws SerializationException - Throws:
SerializationException
-
readChunk
ResponseMessage readChunk(io.netty.buffer.ByteBuf byteBuf, boolean isFirstChunk) throws SerializationException - Throws:
SerializationException
-