Package io.netty.handler.codec
Class LengthFieldPrepender
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelOutboundHandlerAdapter
-
- io.netty.handler.codec.MessageToMessageEncoder<io.netty.buffer.ByteBuf>
-
- io.netty.handler.codec.LengthFieldPrepender
-
- All Implemented Interfaces:
io.netty.channel.ChannelHandler,io.netty.channel.ChannelOutboundHandler
@Sharable public class LengthFieldPrepender extends MessageToMessageEncoder<io.netty.buffer.ByteBuf>
An encoder that prepends the length of the message. The length value is prepended as a binary form.For example,
LengthFieldPrepender(2) will encode the following 12-bytes string:+----------------+ | "HELLO, WORLD" | +----------------+
into the following:+--------+----------------+ + 0x000C | "HELLO, WORLD" | +--------+----------------+
If you turned on thelengthIncludesLengthFieldLengthflag in the constructor, the encoded data would look like the following (12 (original data) + 2 (prepended data) = 14 (0xE)):+--------+----------------+ + 0x000E | "HELLO, WORLD" | +--------+----------------+
-
-
Constructor Summary
Constructors Constructor Description LengthFieldPrepender(int lengthFieldLength)Creates a new instance.LengthFieldPrepender(int lengthFieldLength, boolean lengthIncludesLengthFieldLength)Creates a new instance.LengthFieldPrepender(int lengthFieldLength, int lengthAdjustment)Creates a new instance.LengthFieldPrepender(int lengthFieldLength, int lengthAdjustment, boolean lengthIncludesLengthFieldLength)Creates a new instance.LengthFieldPrepender(ByteOrder byteOrder, int lengthFieldLength, int lengthAdjustment, boolean lengthIncludesLengthFieldLength)Creates a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidencode(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf msg, List<Object> out)Encode from one message to an other.-
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
-
-
-
-
Constructor Detail
-
LengthFieldPrepender
public LengthFieldPrepender(int lengthFieldLength)
Creates a new instance.- Parameters:
lengthFieldLength- the length of the prepended length field. Only 1, 2, 3, 4, and 8 are allowed.- Throws:
IllegalArgumentException- iflengthFieldLengthis not 1, 2, 3, 4, or 8
-
LengthFieldPrepender
public LengthFieldPrepender(int lengthFieldLength, boolean lengthIncludesLengthFieldLength)Creates a new instance.- Parameters:
lengthFieldLength- the length of the prepended length field. Only 1, 2, 3, 4, and 8 are allowed.lengthIncludesLengthFieldLength- iftrue, the length of the prepended length field is added to the value of the prepended length field.- Throws:
IllegalArgumentException- iflengthFieldLengthis not 1, 2, 3, 4, or 8
-
LengthFieldPrepender
public LengthFieldPrepender(int lengthFieldLength, int lengthAdjustment)Creates a new instance.- Parameters:
lengthFieldLength- the length of the prepended length field. Only 1, 2, 3, 4, and 8 are allowed.lengthAdjustment- the compensation value to add to the value of the length field- Throws:
IllegalArgumentException- iflengthFieldLengthis not 1, 2, 3, 4, or 8
-
LengthFieldPrepender
public LengthFieldPrepender(int lengthFieldLength, int lengthAdjustment, boolean lengthIncludesLengthFieldLength)Creates a new instance.- Parameters:
lengthFieldLength- the length of the prepended length field. Only 1, 2, 3, 4, and 8 are allowed.lengthAdjustment- the compensation value to add to the value of the length fieldlengthIncludesLengthFieldLength- iftrue, the length of the prepended length field is added to the value of the prepended length field.- Throws:
IllegalArgumentException- iflengthFieldLengthis not 1, 2, 3, 4, or 8
-
LengthFieldPrepender
public LengthFieldPrepender(ByteOrder byteOrder, int lengthFieldLength, int lengthAdjustment, boolean lengthIncludesLengthFieldLength)
Creates a new instance.- Parameters:
byteOrder- theByteOrderof the length fieldlengthFieldLength- the length of the prepended length field. Only 1, 2, 3, 4, and 8 are allowed.lengthAdjustment- the compensation value to add to the value of the length fieldlengthIncludesLengthFieldLength- iftrue, the length of the prepended length field is added to the value of the prepended length field.- Throws:
IllegalArgumentException- iflengthFieldLengthis not 1, 2, 3, 4, or 8
-
-
Method Detail
-
encode
protected void encode(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf msg, List<Object> out) throws ExceptionDescription 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<io.netty.buffer.ByteBuf>- 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
-
-