Class LengthFieldPrepender

java.lang.Object
org.jboss.netty.handler.codec.oneone.OneToOneEncoder
org.jboss.netty.handler.codec.frame.LengthFieldPrepender
All Implemented Interfaces:
ChannelDownstreamHandler, ChannelHandler

@Sharable public class LengthFieldPrepender extends OneToOneEncoder
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" |
 +--------+----------------+
 
  • 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 - if lengthFieldLength 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 - if true, the length of the prepended length field is added to the value of the prepended length field.
      Throws:
      IllegalArgumentException - if lengthFieldLength is not 1, 2, 3, 4, or 8
  • Method Details