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 bothBinaryMemcacheRequest
andBinaryMemcacheResponse
. 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 int
DEFAULT_MAX_CHUNK_SIZE
-
Fields inherited from class io.netty.handler.codec.ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractBinaryMemcacheDecoder()
Create a newAbstractBinaryMemcacheDecoder
with default settings.protected
AbstractBinaryMemcacheDecoder(int chunkSize)
Create a newAbstractBinaryMemcacheDecoder
with custom settings.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract M
buildInvalidMessage()
Helper method to create a upstream message when the incoming parsing did fail.void
channelInactive(ChannelHandlerContext ctx)
When the channel goes inactive, release all frames to prevent data leaks.protected void
decode(ChannelHandlerContext ctx, ByteBuf in, java.util.List<java.lang.Object> out)
Decode the from oneByteBuf
to an other.protected abstract M
decodeHeader(ByteBuf in)
Decode and return the parsedBinaryMemcacheMessage
.protected void
resetDecoder()
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 newAbstractBinaryMemcacheDecoder
with default settings.
-
AbstractBinaryMemcacheDecoder
protected AbstractBinaryMemcacheDecoder(int chunkSize)
Create a newAbstractBinaryMemcacheDecoder
with 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:ByteToMessageDecoder
Decode the from oneByteBuf
to an other. This method will be called till either the inputByteBuf
has nothing to read when return from this method or till nothing was read from the inputByteBuf
.- Specified by:
decode
in classByteToMessageDecoder
- Parameters:
ctx
- theChannelHandlerContext
which thisByteToMessageDecoder
belongs toin
- theByteBuf
from which to read dataout
- theList
to 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:
channelInactive
in interfaceChannelInboundHandler
- Overrides:
channelInactive
in 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.
-
-