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 voidencode(ChannelHandlerContext ctx, RedisMessage msg, List<Object> out) Encode from one message to an other.private byte[]numberToBytes(long value) private voidwriteArrayHeader(ByteBufAllocator allocator, boolean isNull, long length, List<Object> out) private voidwriteArrayHeader(ByteBufAllocator allocator, ArrayHeaderRedisMessage msg, List<Object> out) Write array header only without body.private voidwriteArrayMessage(ByteBufAllocator allocator, ArrayRedisMessage msg, List<Object> out) Write full constructed array message.private static voidwriteBulkStringContent(ByteBufAllocator allocator, BulkStringRedisContent msg, List<Object> out) private voidwriteBulkStringHeader(ByteBufAllocator allocator, BulkStringHeaderRedisMessage msg, List<Object> out) private static voidwriteErrorMessage(ByteBufAllocator allocator, ErrorRedisMessage msg, List<Object> out) private voidwriteFullBulkStringMessage(ByteBufAllocator allocator, FullBulkStringRedisMessage msg, List<Object> out) private static voidwriteInlineCommandMessage(ByteBufAllocator allocator, InlineCommandRedisMessage msg, List<Object> out) private voidwriteIntegerMessage(ByteBufAllocator allocator, IntegerRedisMessage msg, List<Object> out) private voidwriteRedisMessage(ByteBufAllocator allocator, RedisMessage msg, List<Object> out) private static voidwriteSimpleStringMessage(ByteBufAllocator allocator, SimpleStringRedisMessage msg, List<Object> out) private static voidwriteString(ByteBufAllocator allocator, RedisMessageType type, String content, List<Object> out) Methods inherited from class io.netty.handler.codec.MessageToMessageEncoder
acceptOutboundMessage, writeMethods inherited from class io.netty.channel.ChannelOutboundHandlerAdapter
bind, close, connect, deregister, disconnect, flush, readMethods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, exceptionCaught, handlerAdded, handlerRemoved, isSharableMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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:MessageToMessageEncoderEncode from one message to an other. This method will be called for each written message that can be handled by this encoder.- Specified by:
encodein classMessageToMessageEncoder<RedisMessage>- Parameters:
ctx- theChannelHandlerContextwhich thisMessageToMessageEncoderbelongs tomsg- the message to encode to an other oneout- theListinto 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)
-