Class AbstractBinaryMemcacheDecoder<M extends BinaryMemcacheMessage>
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.handler.codec.ByteToMessageDecoder
-
- com.couchbase.client.deps.io.netty.handler.codec.memcache.AbstractMemcacheObjectDecoder
-
- com.couchbase.client.deps.io.netty.handler.codec.memcache.binary.AbstractBinaryMemcacheDecoder<M>
-
- All Implemented Interfaces:
ChannelHandler
,ChannelInboundHandler
- Direct Known Subclasses:
BinaryMemcacheRequestDecoder
,BinaryMemcacheResponseDecoder
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, List<Object> out)
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, List<Object> out) throws Exception
- Specified by:
decode
in classByteToMessageDecoder
- Throws:
Exception
-
channelInactive
public void channelInactive(ChannelHandlerContext ctx) throws 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:
Exception
- if something goes wrong during channel inactive notification.
-
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.
-
-