Package io.netty.handler.codec
Class ByteToMessageCodec<I>
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.channel.ChannelDuplexHandler
io.netty.handler.codec.ByteToMessageCodec<I>
- All Implemented Interfaces:
ChannelHandler,ChannelInboundHandler,ChannelOutboundHandler
A Codec for on-the-fly encoding/decoding of bytes to messages and vise-versa.
This can be thought of as a combination of
}.
ByteToMessageDecoder and MessageToByteEncoder.
Be aware that sub-classes of ByteToMessageCodec MUST NOT
annotated with
invalid @link
{@link @Sharable
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ByteToMessageDecoderprivate final MessageToByteEncoder<I> private final TypeParameterMatcher -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedseeByteToMessageCodec(boolean)withtrueas boolean parameter.protectedByteToMessageCodec(boolean preferDirect) Create a new instance which will try to detect the types to match out of the type parameter of the class.protectedByteToMessageCodec(Class<? extends I> outboundMessageType) seeByteToMessageCodec(Class, boolean)withtrueas boolean value.protectedByteToMessageCodec(Class<? extends I> outboundMessageType, boolean preferDirect) Create a new instance -
Method Summary
Modifier and TypeMethodDescriptionbooleanReturnstrueif and only if the specified message can be encoded by this codec.voidCallsChannelHandlerContext.fireChannelInactive()to forward to the nextChannelInboundHandlerin theChannelPipeline.voidchannelRead(ChannelHandlerContext ctx, Object msg) CallsChannelHandlerContext.fireChannelRead(Object)to forward to the nextChannelInboundHandlerin theChannelPipeline.voidCallsChannelHandlerContext.fireChannelReadComplete()to forward to the nextChannelInboundHandlerin theChannelPipeline.protected abstract voiddecode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) protected voiddecodeLast(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) protected abstract voidencode(ChannelHandlerContext ctx, I msg, ByteBuf out) voidDo nothing by default, sub-classes may override this method.voidDo nothing by default, sub-classes may override this method.voidwrite(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) CallsChannelOutboundInvoker.write(Object, ChannelPromise)to forward to the nextChannelOutboundHandlerin theChannelPipeline.Methods inherited from class io.netty.channel.ChannelDuplexHandler
bind, close, connect, deregister, disconnect, flush, readMethods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught, userEventTriggeredMethods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, isSharable
-
Field Details
-
outboundMsgMatcher
-
encoder
-
decoder
-
-
Constructor Details
-
ByteToMessageCodec
protected ByteToMessageCodec()seeByteToMessageCodec(boolean)withtrueas boolean parameter. -
ByteToMessageCodec
seeByteToMessageCodec(Class, boolean)withtrueas boolean value. -
ByteToMessageCodec
protected ByteToMessageCodec(boolean preferDirect) Create a new instance which will try to detect the types to match out of the type parameter of the class. -
ByteToMessageCodec
Create a new instance
-
-
Method Details
-
acceptOutboundMessage
Returnstrueif and only if the specified message can be encoded by this codec.- Parameters:
msg- the message- Throws:
Exception
-
channelRead
Description copied from class:ChannelInboundHandlerAdapterCallsChannelHandlerContext.fireChannelRead(Object)to forward to the nextChannelInboundHandlerin theChannelPipeline. Sub-classes may override this method to change behavior.- Specified by:
channelReadin interfaceChannelInboundHandler- Overrides:
channelReadin classChannelInboundHandlerAdapter- Throws:
Exception
-
write
Description copied from class:ChannelDuplexHandlerCallsChannelOutboundInvoker.write(Object, ChannelPromise)to forward to the nextChannelOutboundHandlerin theChannelPipeline. Sub-classes may override this method to change behavior.- Specified by:
writein interfaceChannelOutboundHandler- Overrides:
writein classChannelDuplexHandler- Parameters:
ctx- theChannelHandlerContextfor which the write operation is mademsg- the message to writepromise- theChannelPromiseto notify once the operation completes- Throws:
Exception- thrown if an error occurs
-
channelReadComplete
Description copied from class:ChannelInboundHandlerAdapterCallsChannelHandlerContext.fireChannelReadComplete()to forward to the nextChannelInboundHandlerin theChannelPipeline. Sub-classes may override this method to change behavior.- Specified by:
channelReadCompletein interfaceChannelInboundHandler- Overrides:
channelReadCompletein classChannelInboundHandlerAdapter- Throws:
Exception
-
channelInactive
Description copied from class:ChannelInboundHandlerAdapterCallsChannelHandlerContext.fireChannelInactive()to forward to the nextChannelInboundHandlerin theChannelPipeline. Sub-classes may override this method to change behavior.- Specified by:
channelInactivein interfaceChannelInboundHandler- Overrides:
channelInactivein classChannelInboundHandlerAdapter- Throws:
Exception
-
handlerAdded
Description copied from class:ChannelHandlerAdapterDo nothing by default, sub-classes may override this method.- Specified by:
handlerAddedin interfaceChannelHandler- Overrides:
handlerAddedin classChannelHandlerAdapter- Throws:
Exception
-
handlerRemoved
Description copied from class:ChannelHandlerAdapterDo nothing by default, sub-classes may override this method.- Specified by:
handlerRemovedin interfaceChannelHandler- Overrides:
handlerRemovedin classChannelHandlerAdapter- Throws:
Exception
-
encode
- Throws:
Exception- See Also:
-
decode
protected abstract void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception - Throws:
Exception- See Also:
-
decodeLast
- Throws:
Exception- See Also:
-