
public class DelimiterBasedFrameDecoder extends FrameDecoder
ChannelBuffers by one or more
 delimiters.  It is particularly useful for decoding the frames which ends
 with a delimiter such as NUL or
 newline characters.
 
 Delimiters defines frequently used delimiters for convenience' sake.
 
 DelimiterBasedFrameDecoder allows you to specify more than one
 delimiter.  If more than one delimiter is found in the buffer, it chooses
 the delimiter which produces the shortest frame.  For example, if you have
 the following data in the buffer:
 
+--------------+ | ABC\nDEF\r\n | +--------------+a
DelimiterBasedFrameDecoder(Delimiters.lineDelimiter())
 will choose '\n' as the first delimiter and produce two frames:
 +-----+-----+ | ABC | DEF | +-----+-----+rather than incorrectly choosing
'\r\n' as the first delimiter:
 +----------+ | ABC\nDEF | +----------+
ChannelHandler.Sharablecumulation, DEFAULT_MAX_COMPOSITEBUFFER_COMPONENTS| Constructor and Description | 
|---|
| DelimiterBasedFrameDecoder(int maxFrameLength,
                          boolean stripDelimiter,
                          boolean failFast,
                          ChannelBuffer... delimiters)Creates a new instance. | 
| DelimiterBasedFrameDecoder(int maxFrameLength,
                          boolean stripDelimiter,
                          boolean failFast,
                          ChannelBuffer delimiter)Creates a new instance. | 
| DelimiterBasedFrameDecoder(int maxFrameLength,
                          boolean stripDelimiter,
                          ChannelBuffer... delimiters)Creates a new instance. | 
| DelimiterBasedFrameDecoder(int maxFrameLength,
                          boolean stripDelimiter,
                          ChannelBuffer delimiter)Creates a new instance. | 
| DelimiterBasedFrameDecoder(int maxFrameLength,
                          ChannelBuffer... delimiters)Creates a new instance. | 
| DelimiterBasedFrameDecoder(int maxFrameLength,
                          ChannelBuffer delimiter)Creates a new instance. | 
| Modifier and Type | Method and Description | 
|---|---|
| protected Object | decode(ChannelHandlerContext ctx,
      Channel channel,
      ChannelBuffer buffer)Decodes the received packets so far into a frame. | 
actualReadableBytes, afterAdd, afterRemove, appendToCumulation, beforeAdd, beforeRemove, channelClosed, channelDisconnected, cleanup, decodeLast, exceptionCaught, extractFrame, getMaxCumulationBufferCapacity, getMaxCumulationBufferComponents, internalBuffer, isUnfold, messageReceived, newCumulationBuffer, replace, setMaxCumulationBufferCapacity, setMaxCumulationBufferComponents, setUnfold, unfoldAndFireMessageReceived, updateCumulationchannelBound, channelConnected, channelInterestChanged, channelOpen, channelUnbound, childChannelClosed, childChannelOpen, handleUpstream, writeCompletepublic DelimiterBasedFrameDecoder(int maxFrameLength,
                          ChannelBuffer delimiter)
maxFrameLength - the maximum length of the decoded frame.
                        A TooLongFrameException is thrown if
                        the length of the frame exceeds this value.delimiter - the delimiterpublic DelimiterBasedFrameDecoder(int maxFrameLength,
                          boolean stripDelimiter,
                          ChannelBuffer delimiter)
maxFrameLength - the maximum length of the decoded frame.
                        A TooLongFrameException is thrown if
                        the length of the frame exceeds this value.stripDelimiter - whether the decoded frame should strip out the
                        delimiter or notdelimiter - the delimiterpublic DelimiterBasedFrameDecoder(int maxFrameLength,
                          boolean stripDelimiter,
                          boolean failFast,
                          ChannelBuffer delimiter)
maxFrameLength - the maximum length of the decoded frame.
                        A TooLongFrameException is thrown if
                        the length of the frame exceeds this value.stripDelimiter - whether the decoded frame should strip out the
                        delimiter or notfailFast - If true, a TooLongFrameException is
                  thrown as soon as the decoder notices the length of the
                  frame will exceed maxFrameLength regardless of
                  whether the entire frame has been read.
                  If false, a TooLongFrameException is
                  thrown after the entire frame that exceeds
                  maxFrameLength has been read.delimiter - the delimiterpublic DelimiterBasedFrameDecoder(int maxFrameLength,
                          ChannelBuffer... delimiters)
maxFrameLength - the maximum length of the decoded frame.
                        A TooLongFrameException is thrown if
                        the length of the frame exceeds this value.delimiters - the delimiterspublic DelimiterBasedFrameDecoder(int maxFrameLength,
                          boolean stripDelimiter,
                          ChannelBuffer... delimiters)
maxFrameLength - the maximum length of the decoded frame.
                        A TooLongFrameException is thrown if
                        the length of the frame exceeds this value.stripDelimiter - whether the decoded frame should strip out the
                        delimiter or notdelimiters - the delimiterspublic DelimiterBasedFrameDecoder(int maxFrameLength,
                          boolean stripDelimiter,
                          boolean failFast,
                          ChannelBuffer... delimiters)
maxFrameLength - the maximum length of the decoded frame.
                        A TooLongFrameException is thrown if
                        the length of the frame exceeds this value.stripDelimiter - whether the decoded frame should strip out the
                        delimiter or notfailFast - If true, a TooLongFrameException is
                  thrown as soon as the decoder notices the length of the
                  frame will exceed maxFrameLength regardless of
                  whether the entire frame has been read.
                  If false, a TooLongFrameException is
                  thrown after the entire frame that exceeds
                  maxFrameLength has been read.delimiters - the delimitersprotected Object decode(ChannelHandlerContext ctx, Channel channel, ChannelBuffer buffer) throws Exception
FrameDecoderFrameDecoder.extractFrame(ChannelBuffer, int, int) method,
 to make optimizations easier later.decode in class FrameDecoderctx - the context of this handlerchannel - the current channelbuffer - the cumulative buffer of received packets so far.
                 Note that the buffer might be empty, which means you
                 should not make an assumption that the buffer contains
                 at least one byte in your decoder implementation.null if there's not enough data in the buffer to decode a frame.ExceptionCopyright © 2008-2014 The Netty Project. All Rights Reserved.