Class CompatibleMarshallingDecoder
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.handler.codec.ByteToMessageDecoder
-
- io.netty.handler.codec.ReplayingDecoder<Void>
-
- io.netty.handler.codec.marshalling.CompatibleMarshallingDecoder
-
- All Implemented Interfaces:
io.netty.channel.ChannelHandler,io.netty.channel.ChannelInboundHandler
public class CompatibleMarshallingDecoder extends ReplayingDecoder<Void>
ReplayingDecoderwhich use anUnmarshallerto read the Object out of theByteBuf. If you can you should useMarshallingDecoder.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class io.netty.handler.codec.ByteToMessageDecoder
ByteToMessageDecoder.Cumulator
-
-
Field Summary
Fields Modifier and Type Field Description protected intmaxObjectSizeprotected UnmarshallerProviderprovider-
Fields inherited from class io.netty.handler.codec.ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR
-
-
Constructor Summary
Constructors Constructor Description CompatibleMarshallingDecoder(UnmarshallerProvider provider, int maxObjectSize)Create a new instance ofCompatibleMarshallingDecoder.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voiddecode(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf buffer, List<Object> out)Decode the from oneByteBufto an other.protected voiddecodeLast(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf buffer, List<Object> out)Is called one last time when theChannelHandlerContextgoes in-active.voidexceptionCaught(io.netty.channel.ChannelHandlerContext ctx, Throwable cause)-
Methods inherited from class io.netty.handler.codec.ReplayingDecoder
callDecode, checkpoint, checkpoint, state, state
-
Methods inherited from class io.netty.handler.codec.ByteToMessageDecoder
actualReadableBytes, channelInactive, channelRead, channelReadComplete, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggered
-
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, isSharable
-
-
-
-
Field Detail
-
provider
protected final UnmarshallerProvider provider
-
maxObjectSize
protected final int maxObjectSize
-
-
Constructor Detail
-
CompatibleMarshallingDecoder
public CompatibleMarshallingDecoder(UnmarshallerProvider provider, int maxObjectSize)
Create a new instance ofCompatibleMarshallingDecoder.- Parameters:
provider- theUnmarshallerProviderwhich is used to obtain theUnmarshallerfor theChannelmaxObjectSize- the maximal size (in bytes) of theObjectto unmarshal. Once the size is exceeded theChannelwill get closed. Use a maxObjectSize ofInteger.MAX_VALUEto disable this. You should only do this if you are sure that the received Objects will never be big and the sending side are trusted, as this opens the possibility for a DOS-Attack due anOutOfMemoryError.
-
-
Method Detail
-
decode
protected void decode(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf buffer, List<Object> out) throws ExceptionDescription copied from class:ByteToMessageDecoderDecode the from oneByteBufto an other. This method will be called till either the inputByteBufhas nothing to read when return from this method or till nothing was read from the inputByteBuf.- Specified by:
decodein classByteToMessageDecoder- Parameters:
ctx- theChannelHandlerContextwhich thisByteToMessageDecoderbelongs tobuffer- theByteBuffrom which to read dataout- theListto which decoded messages should be added- Throws:
Exception- is thrown if an error occurs
-
decodeLast
protected void decodeLast(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf buffer, List<Object> out) throws ExceptionDescription copied from class:ByteToMessageDecoderIs called one last time when theChannelHandlerContextgoes in-active. Which means theByteToMessageDecoder.channelInactive(ChannelHandlerContext)was triggered. By default, this will just callByteToMessageDecoder.decode(ChannelHandlerContext, ByteBuf, List)but sub-classes may override this for some special cleanup operation.- Overrides:
decodeLastin classByteToMessageDecoder- Throws:
Exception
-
exceptionCaught
public void exceptionCaught(io.netty.channel.ChannelHandlerContext ctx, Throwable cause) throws Exception- Specified by:
exceptionCaughtin interfaceio.netty.channel.ChannelHandler- Specified by:
exceptionCaughtin interfaceio.netty.channel.ChannelInboundHandler- Overrides:
exceptionCaughtin classio.netty.channel.ChannelInboundHandlerAdapter- Throws:
Exception
-
-