Class MaxLengthFrameEncoder

java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelOutboundHandlerAdapter
io.netty.handler.codec.MessageToMessageEncoder<io.netty.buffer.ByteBuf>
org.drasyl.handler.codec.MaxLengthFrameEncoder
All Implemented Interfaces:
io.netty.channel.ChannelHandler, io.netty.channel.ChannelOutboundHandler

public class MaxLengthFrameEncoder extends io.netty.handler.codec.MessageToMessageEncoder<io.netty.buffer.ByteBuf>
An encoder that splits received ByteBufs into frames not larger then maxFrameLength. For example, if you received the following four fragmented packets:
 +---+----+-----+----+
 | A | BC | DEF | GH |
 +---+----+-----+----+
 
A MaxLengthFrameEncoder(2) will encode them into the following three packets with the fixed length:
 +---+----+----+---+----+
 | A | BC | DE | F | GH |
 +---+----+----+---+----+
 
  • Nested Class Summary

    Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler

    io.netty.channel.ChannelHandler.Sharable
  • Constructor Summary

    Constructors
    Constructor
    Description
    MaxLengthFrameEncoder(int maxFrameLength)
    Creates a new instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    encode(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf in, List<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
  • Constructor Details

    • MaxLengthFrameEncoder

      public MaxLengthFrameEncoder(int maxFrameLength)
      Creates a new instance.
      Parameters:
      maxFrameLength - the maximum length of the frame
  • Method Details

    • encode

      protected void encode(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf in, List<Object> out) throws Exception
      Specified by:
      encode in class io.netty.handler.codec.MessageToMessageEncoder<io.netty.buffer.ByteBuf>
      Throws:
      Exception