Class AbstractBinaryMemcacheDecoder<M extends BinaryMemcacheMessage>
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.handler.codec.ByteToMessageDecoder
-
- io.netty.handler.codec.memcache.AbstractMemcacheObjectDecoder
-
- io.netty.handler.codec.memcache.binary.AbstractBinaryMemcacheDecoder<M>
-
- All Implemented Interfaces:
ChannelHandler,ChannelInboundHandler
- Direct Known Subclasses:
BinaryMemcacheRequestDecoder,BinaryMemcacheResponseDecoder
@UnstableApi public abstract class AbstractBinaryMemcacheDecoder<M extends BinaryMemcacheMessage> extends AbstractMemcacheObjectDecoder
Decoder for bothBinaryMemcacheRequestandBinaryMemcacheResponse. The difference in the protocols (header) is implemented by the subclasses.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class io.netty.handler.codec.ByteToMessageDecoder
ByteToMessageDecoder.Cumulator
-
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_MAX_CHUNK_SIZE-
Fields inherited from class io.netty.handler.codec.ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractBinaryMemcacheDecoder()Create a newAbstractBinaryMemcacheDecoderwith default settings.protectedAbstractBinaryMemcacheDecoder(int chunkSize)Create a newAbstractBinaryMemcacheDecoderwith custom settings.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract MbuildInvalidMessage()Helper method to create a upstream message when the incoming parsing did fail.voidchannelInactive(ChannelHandlerContext ctx)When the channel goes inactive, release all frames to prevent data leaks.protected voiddecode(ChannelHandlerContext ctx, ByteBuf in, java.util.List<java.lang.Object> out)Decode the from oneByteBufto an other.protected abstract MdecodeHeader(ByteBuf in)Decode and return the parsedBinaryMemcacheMessage.protected voidresetDecoder()Prepare for next decoding iteration.-
Methods inherited from class io.netty.handler.codec.ByteToMessageDecoder
actualReadableBytes, callDecode, 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 class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.netty.channel.ChannelHandler
handlerAdded
-
-
-
-
Field Detail
-
DEFAULT_MAX_CHUNK_SIZE
public static final int DEFAULT_MAX_CHUNK_SIZE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AbstractBinaryMemcacheDecoder
protected AbstractBinaryMemcacheDecoder()
Create a newAbstractBinaryMemcacheDecoderwith default settings.
-
AbstractBinaryMemcacheDecoder
protected AbstractBinaryMemcacheDecoder(int chunkSize)
Create a newAbstractBinaryMemcacheDecoderwith custom settings.- Parameters:
chunkSize- the maximum chunk size of the payload.
-
-
Method Detail
-
decode
protected void decode(ChannelHandlerContext ctx, ByteBuf in, java.util.List<java.lang.Object> out) throws java.lang.Exception
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 toin- theByteBuffrom which to read dataout- theListto which decoded messages should be added- Throws:
java.lang.Exception- is thrown if an error occurs
-
channelInactive
public void channelInactive(ChannelHandlerContext ctx) throws java.lang.Exception
When the channel goes inactive, release all frames to prevent data leaks.- Specified by:
channelInactivein interfaceChannelInboundHandler- Overrides:
channelInactivein classByteToMessageDecoder- Parameters:
ctx- handler context- Throws:
java.lang.Exception
-
resetDecoder
protected void resetDecoder()
Prepare for next decoding iteration.
-
decodeHeader
protected abstract M decodeHeader(ByteBuf in)
Decode and return the parsedBinaryMemcacheMessage.- Parameters:
in- the incoming buffer.- Returns:
- the decoded header.
-
buildInvalidMessage
protected abstract M buildInvalidMessage()
Helper method to create a upstream message when the incoming parsing did fail.- Returns:
- a message indicating a decoding failure.
-
-