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:
ChannelHandler, ChannelInboundHandler
ReplayingDecoder which use an Unmarshaller to read the Object out of the ByteBuf.
If you can you should use MarshallingDecoder.-
Nested Class Summary
Nested classes/interfaces inherited from class ByteToMessageDecoder
ByteToMessageDecoder.CumulatorNested classes/interfaces inherited from interface ChannelHandler
ChannelHandler.Sharable -
Field Summary
FieldsFields inherited from class ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR -
Constructor Summary
ConstructorsConstructorDescriptionCompatibleMarshallingDecoder(UnmarshallerProvider provider, int maxObjectSize) Create a new instance ofCompatibleMarshallingDecoder. -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddecode(ChannelHandlerContext ctx, ByteBuf buffer, List<Object> out) Decode the from oneByteBufto an other.protected voiddecodeLast(ChannelHandlerContext ctx, ByteBuf buffer, List<Object> out) Is called one last time when theChannelHandlerContextgoes in-active.voidexceptionCaught(ChannelHandlerContext ctx, Throwable cause) CallsChannelHandlerContext.fireExceptionCaught(Throwable)to forward to the nextChannelHandlerin theChannelPipeline.Methods inherited from class ReplayingDecoder
callDecode, checkpoint, checkpoint, state, stateMethods inherited from class ByteToMessageDecoder
actualReadableBytes, channelInactive, channelRead, channelReadComplete, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggeredMethods inherited from class ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChangedMethods inherited from class ChannelHandlerAdapter
ensureNotSharable, handlerAdded, isSharableMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ChannelHandler
handlerAdded
-
Field Details
-
provider
-
maxObjectSize
protected final int maxObjectSize
-
-
Constructor Details
-
CompatibleMarshallingDecoder
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 Details
-
decode
Description 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(ChannelHandlerContext ctx, ByteBuf buffer, List<Object> out) throws Exception Description 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
Description copied from class:ChannelInboundHandlerAdapterCallsChannelHandlerContext.fireExceptionCaught(Throwable)to forward to the nextChannelHandlerin theChannelPipeline. Sub-classes may override this method to change behavior.- Specified by:
exceptionCaughtin interfaceChannelHandler- Specified by:
exceptionCaughtin interfaceChannelInboundHandler- Overrides:
exceptionCaughtin classChannelInboundHandlerAdapter- Throws:
Exception
-