Class LengthFieldPrepender
java.lang.Object
org.jboss.netty.handler.codec.oneone.OneToOneEncoder
org.jboss.netty.handler.codec.frame.LengthFieldPrepender
- All Implemented Interfaces:
ChannelDownstreamHandler
,ChannelHandler
An encoder that prepends the length of the message. The length value is
prepended as a binary form. It is encoded in either big endian or little
endian depending on the default
ByteOrder
of the current
ChannelBufferFactory
.
For example, LengthFieldPrepender
(2) will encode the
following 12-bytes string:
+----------------+ | "HELLO, WORLD" | +----------------+into the following:
+--------+----------------+ + 0x000C | "HELLO, WORLD" | +--------+----------------+If you turned on the
lengthIncludesLengthFieldLength
flag in the
constructor, the encoded data would look like the following
(12 (original data) + 2 (prepended data) = 14 (0xE)):
+--------+----------------+ + 0x000E | "HELLO, WORLD" | +--------+----------------+
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.jboss.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final int
private final boolean
-
Constructor Summary
ConstructorsConstructorDescriptionLengthFieldPrepender
(int lengthFieldLength) Creates a new instance.LengthFieldPrepender
(int lengthFieldLength, boolean lengthIncludesLengthFieldLength) Creates a new instance. -
Method Summary
Modifier and TypeMethodDescriptionprotected Object
encode
(ChannelHandlerContext ctx, Channel channel, Object msg) Transforms the specified message into another message and return the transformed message.Methods inherited from class org.jboss.netty.handler.codec.oneone.OneToOneEncoder
doEncode, handleDownstream
-
Field Details
-
lengthFieldLength
private final int lengthFieldLength -
lengthIncludesLengthFieldLength
private final boolean lengthIncludesLengthFieldLength
-
-
Constructor Details
-
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
- iflengthFieldLength
is 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
- iflengthFieldLength
is not 1, 2, 3, 4, or 8
-
-
Method Details
-
encode
Description copied from class:OneToOneEncoder
Transforms the specified message into another message and return the transformed message. Note that you can not returnnull
, unlike you can inOneToOneDecoder.decode(ChannelHandlerContext, Channel, Object)
; you must return something, at leastChannelBuffers.EMPTY_BUFFER
.- Specified by:
encode
in classOneToOneEncoder
- Throws:
Exception
-