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
@UnstableApi public class RedisEncoder extends MessageToMessageEncoder<RedisMessage>
EncodesRedisMessage
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 Modifier and Type Field Description private RedisMessagePool
messagePool
-
Constructor Summary
Constructors Constructor Description RedisEncoder()
Creates a new instance with defaultmessagePool
.RedisEncoder(RedisMessagePool messagePool)
Creates a new instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
encode(ChannelHandlerContext ctx, RedisMessage msg, java.util.List<java.lang.Object> out)
Encode from one message to an other.private byte[]
numberToBytes(long value)
private void
writeArrayHeader(ByteBufAllocator allocator, boolean isNull, long length, java.util.List<java.lang.Object> out)
private void
writeArrayHeader(ByteBufAllocator allocator, ArrayHeaderRedisMessage msg, java.util.List<java.lang.Object> out)
Write array header only without body.private void
writeArrayMessage(ByteBufAllocator allocator, ArrayRedisMessage msg, java.util.List<java.lang.Object> out)
Write full constructed array message.private static void
writeBulkStringContent(ByteBufAllocator allocator, BulkStringRedisContent msg, java.util.List<java.lang.Object> out)
private void
writeBulkStringHeader(ByteBufAllocator allocator, BulkStringHeaderRedisMessage msg, java.util.List<java.lang.Object> out)
private static void
writeErrorMessage(ByteBufAllocator allocator, ErrorRedisMessage msg, java.util.List<java.lang.Object> out)
private void
writeFullBulkStringMessage(ByteBufAllocator allocator, FullBulkStringRedisMessage msg, java.util.List<java.lang.Object> out)
private static void
writeInlineCommandMessage(ByteBufAllocator allocator, InlineCommandRedisMessage msg, java.util.List<java.lang.Object> out)
private void
writeIntegerMessage(ByteBufAllocator allocator, IntegerRedisMessage msg, java.util.List<java.lang.Object> out)
private void
writeRedisMessage(ByteBufAllocator allocator, RedisMessage msg, java.util.List<java.lang.Object> out)
private static void
writeSimpleStringMessage(ByteBufAllocator allocator, SimpleStringRedisMessage msg, java.util.List<java.lang.Object> out)
private static void
writeString(ByteBufAllocator allocator, RedisMessageType type, java.lang.String content, java.util.List<java.lang.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 Detail
-
messagePool
private final RedisMessagePool messagePool
-
-
Constructor Detail
-
RedisEncoder
public RedisEncoder()
Creates a new instance with defaultmessagePool
.
-
RedisEncoder
public RedisEncoder(RedisMessagePool messagePool)
Creates a new instance.- Parameters:
messagePool
- the predefined message pool.
-
-
Method Detail
-
encode
protected void encode(ChannelHandlerContext ctx, RedisMessage msg, java.util.List<java.lang.Object> out) throws java.lang.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:
java.lang.Exception
- is thrown if an error occurs
-
writeRedisMessage
private void writeRedisMessage(ByteBufAllocator allocator, RedisMessage msg, java.util.List<java.lang.Object> out)
-
writeInlineCommandMessage
private static void writeInlineCommandMessage(ByteBufAllocator allocator, InlineCommandRedisMessage msg, java.util.List<java.lang.Object> out)
-
writeSimpleStringMessage
private static void writeSimpleStringMessage(ByteBufAllocator allocator, SimpleStringRedisMessage msg, java.util.List<java.lang.Object> out)
-
writeErrorMessage
private static void writeErrorMessage(ByteBufAllocator allocator, ErrorRedisMessage msg, java.util.List<java.lang.Object> out)
-
writeString
private static void writeString(ByteBufAllocator allocator, RedisMessageType type, java.lang.String content, java.util.List<java.lang.Object> out)
-
writeIntegerMessage
private void writeIntegerMessage(ByteBufAllocator allocator, IntegerRedisMessage msg, java.util.List<java.lang.Object> out)
-
writeBulkStringHeader
private void writeBulkStringHeader(ByteBufAllocator allocator, BulkStringHeaderRedisMessage msg, java.util.List<java.lang.Object> out)
-
writeBulkStringContent
private static void writeBulkStringContent(ByteBufAllocator allocator, BulkStringRedisContent msg, java.util.List<java.lang.Object> out)
-
writeFullBulkStringMessage
private void writeFullBulkStringMessage(ByteBufAllocator allocator, FullBulkStringRedisMessage msg, java.util.List<java.lang.Object> out)
-
writeArrayHeader
private void writeArrayHeader(ByteBufAllocator allocator, ArrayHeaderRedisMessage msg, java.util.List<java.lang.Object> out)
Write array header only without body. Use this if you want to write arrays as streaming.
-
writeArrayMessage
private void writeArrayMessage(ByteBufAllocator allocator, ArrayRedisMessage msg, java.util.List<java.lang.Object> out)
Write full constructed array message.
-
writeArrayHeader
private void writeArrayHeader(ByteBufAllocator allocator, boolean isNull, long length, java.util.List<java.lang.Object> out)
-
numberToBytes
private byte[] numberToBytes(long value)
-
-