Class ObjectDecoder

  • All Implemented Interfaces:
    io.netty.channel.ChannelHandler, io.netty.channel.ChannelInboundHandler

    public class ObjectDecoder
    extends io.netty.handler.codec.LengthFieldBasedFrameDecoder
    A decoder which deserializes the received values into Java objects.

    Please note that the serialized form this decoder expects is not compatible with the standard ObjectOutputStream. Please use ObjectEncoder or ObjectEncoderOutputStream to ensure the interoperability with this decoder.

    Unless there's a requirement for the interoperability with the standard object streams, it is recommended to use ObjectEncoder and ObjectDecoder rather than CompatibleObjectEncoder.

    Version:
    $Rev: 381 $, $Date: 2008-10-01 20:06:18 +0900 (Wed, 01 Oct 2008) $ Note this has been customized to utilize even more idomatic serialization and to support out of message streaming
    Author:
    The Netty Project (netty-dev@lists.jboss.org), Trustin Lee (tlee@redhat.com)
    • Nested Class Summary

      • Nested classes/interfaces inherited from class io.netty.handler.codec.ByteToMessageDecoder

        io.netty.handler.codec.ByteToMessageDecoder.Cumulator
      • Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler

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

      Fields 
      Modifier and Type Field Description
      static long MAX_LOB_SIZE  
      • Fields inherited from class io.netty.handler.codec.ByteToMessageDecoder

        COMPOSITE_CUMULATOR, MERGE_CUMULATOR
    • Constructor Summary

      Constructors 
      Constructor Description
      ObjectDecoder​(int maxObjectSize, long maxLobSize, ClassLoader classLoader, StorageManager storageManager)
      Creates a new decoder with the specified maximum object size.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected Object decode​(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf buffer)  
      protected io.netty.buffer.ByteBuf extractFrame​(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf buffer, int index, int length)  
      • Methods inherited from class io.netty.handler.codec.LengthFieldBasedFrameDecoder

        decode, getUnadjustedFrameLength
      • Methods inherited from class io.netty.handler.codec.ByteToMessageDecoder

        actualReadableBytes, callDecode, channelInactive, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggered
      • Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter

        channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught
      • Methods inherited from class io.netty.channel.ChannelHandlerAdapter

        ensureNotSharable, handlerAdded, isSharable
      • Methods inherited from interface io.netty.channel.ChannelHandler

        handlerAdded
    • Constructor Detail

      • ObjectDecoder

        public ObjectDecoder​(int maxObjectSize,
                             long maxLobSize,
                             ClassLoader classLoader,
                             StorageManager storageManager)
        Creates a new decoder with the specified maximum object size.
        Parameters:
        maxObjectSize - the maximum byte length of the serialized object. if the length of the received object is greater than this value, StreamCorruptedException will be raised.
        classLoader - the ClassLoader which will load the class of the serialized object
    • Method Detail

      • decode

        protected Object decode​(io.netty.channel.ChannelHandlerContext ctx,
                                io.netty.buffer.ByteBuf buffer)
                         throws Exception
        Overrides:
        decode in class io.netty.handler.codec.LengthFieldBasedFrameDecoder
        Throws:
        Exception
      • extractFrame

        protected io.netty.buffer.ByteBuf extractFrame​(io.netty.channel.ChannelHandlerContext ctx,
                                                       io.netty.buffer.ByteBuf buffer,
                                                       int index,
                                                       int length)
        Overrides:
        extractFrame in class io.netty.handler.codec.LengthFieldBasedFrameDecoder