Package io.netty.handler.codec.redis
Class RedisEncoder
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelOutboundHandlerAdapter
io.netty.handler.codec.MessageToMessageEncoder<RedisMessage>
io.netty.handler.codec.redis.RedisEncoder
- All Implemented Interfaces:
ChannelHandler
,ChannelOutboundHandler
Encodes
RedisMessage
into bytes following
RESP (REdis Serialization Protocol).-
Nested Class Summary
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new instance with defaultmessagePool
.RedisEncoder
(RedisMessagePool messagePool) Creates a new instance. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
encode
(ChannelHandlerContext ctx, RedisMessage msg, List<Object> out) Encode from one message to an other.private byte[]
numberToBytes
(long value) private void
writeArrayHeader
(ByteBufAllocator allocator, boolean isNull, long length, List<Object> out) private void
writeArrayHeader
(ByteBufAllocator allocator, ArrayHeaderRedisMessage msg, List<Object> out) Write array header only without body.private void
writeArrayMessage
(ByteBufAllocator allocator, ArrayRedisMessage msg, List<Object> out) Write full constructed array message.private static void
writeBulkStringContent
(ByteBufAllocator allocator, BulkStringRedisContent msg, List<Object> out) private void
writeBulkStringHeader
(ByteBufAllocator allocator, BulkStringHeaderRedisMessage msg, List<Object> out) private static void
writeErrorMessage
(ByteBufAllocator allocator, ErrorRedisMessage msg, List<Object> out) private void
writeFullBulkStringMessage
(ByteBufAllocator allocator, FullBulkStringRedisMessage msg, List<Object> out) private static void
writeInlineCommandMessage
(ByteBufAllocator allocator, InlineCommandRedisMessage msg, List<Object> out) private void
writeIntegerMessage
(ByteBufAllocator allocator, IntegerRedisMessage msg, List<Object> out) private void
writeRedisMessage
(ByteBufAllocator allocator, RedisMessage msg, List<Object> out) private static void
writeSimpleStringMessage
(ByteBufAllocator allocator, SimpleStringRedisMessage msg, List<Object> out) private static void
writeString
(ByteBufAllocator allocator, RedisMessageType type, String content, List<Object> out) Methods inherited from class io.netty.handler.codec.MessageToMessageEncoder
acceptOutboundMessage, write
Methods inherited from class io.netty.channel.ChannelOutboundHandlerAdapter
bind, close, connect, deregister, disconnect, flush, read
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, exceptionCaught, handlerAdded, handlerRemoved, isSharable
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.netty.channel.ChannelHandler
exceptionCaught, handlerAdded, handlerRemoved
-
Field Details
-
messagePool
-
-
Constructor Details
-
RedisEncoder
public RedisEncoder()Creates a new instance with defaultmessagePool
. -
RedisEncoder
Creates a new instance.- Parameters:
messagePool
- the predefined message pool.
-
-
Method Details
-
encode
protected void encode(ChannelHandlerContext ctx, RedisMessage msg, List<Object> out) throws Exception Description copied from class:MessageToMessageEncoder
Encode from one message to an other. This method will be called for each written message that can be handled by this encoder.- Specified by:
encode
in classMessageToMessageEncoder<RedisMessage>
- Parameters:
ctx
- theChannelHandlerContext
which thisMessageToMessageEncoder
belongs tomsg
- the message to encode to an other oneout
- theList
into which the encoded msg should be added needs to do some kind of aggregation- Throws:
Exception
- is thrown if an error occurs
-
writeRedisMessage
-
writeInlineCommandMessage
private static void writeInlineCommandMessage(ByteBufAllocator allocator, InlineCommandRedisMessage msg, List<Object> out) -
writeSimpleStringMessage
private static void writeSimpleStringMessage(ByteBufAllocator allocator, SimpleStringRedisMessage msg, List<Object> out) -
writeErrorMessage
private static void writeErrorMessage(ByteBufAllocator allocator, ErrorRedisMessage msg, List<Object> out) -
writeString
private static void writeString(ByteBufAllocator allocator, RedisMessageType type, String content, List<Object> out) -
writeIntegerMessage
private void writeIntegerMessage(ByteBufAllocator allocator, IntegerRedisMessage msg, List<Object> out) -
writeBulkStringHeader
private void writeBulkStringHeader(ByteBufAllocator allocator, BulkStringHeaderRedisMessage msg, List<Object> out) -
writeBulkStringContent
private static void writeBulkStringContent(ByteBufAllocator allocator, BulkStringRedisContent msg, List<Object> out) -
writeFullBulkStringMessage
private void writeFullBulkStringMessage(ByteBufAllocator allocator, FullBulkStringRedisMessage msg, List<Object> out) -
writeArrayHeader
private void writeArrayHeader(ByteBufAllocator allocator, ArrayHeaderRedisMessage msg, List<Object> out) Write array header only without body. Use this if you want to write arrays as streaming. -
writeArrayMessage
Write full constructed array message. -
writeArrayHeader
private void writeArrayHeader(ByteBufAllocator allocator, boolean isNull, long length, List<Object> out) -
numberToBytes
private byte[] numberToBytes(long value)
-