Package io.netty.handler.codec.memcache
Class AbstractMemcacheObjectEncoder<M extends MemcacheMessage>
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelOutboundHandlerAdapter
-
- io.netty.handler.codec.MessageToMessageEncoder<java.lang.Object>
-
- io.netty.handler.codec.memcache.AbstractMemcacheObjectEncoder<M>
-
- All Implemented Interfaces:
ChannelHandler
,ChannelOutboundHandler
- Direct Known Subclasses:
AbstractBinaryMemcacheEncoder
@UnstableApi public abstract class AbstractMemcacheObjectEncoder<M extends MemcacheMessage> extends MessageToMessageEncoder<java.lang.Object>
A general purposeAbstractMemcacheObjectEncoder
that encodesMemcacheMessage
s.Note that this class is designed to be extended, especially because both the binary and ascii protocol require different treatment of their messages. Since the content chunk writing is the same for both, the encoder abstracts this right away.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
ChannelHandler.Sharable
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
expectingMoreContent
-
Constructor Summary
Constructors Constructor Description AbstractMemcacheObjectEncoder()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description boolean
acceptOutboundMessage(java.lang.Object msg)
Returnstrue
if the given message should be handled.private static int
contentLength(java.lang.Object msg)
Determine the content length of the given object.protected void
encode(ChannelHandlerContext ctx, java.lang.Object msg, java.util.List<java.lang.Object> out)
Encode from one message to an other.private static java.lang.Object
encodeAndRetain(java.lang.Object msg)
Encode the content, depending on the object type.protected abstract ByteBuf
encodeMessage(ChannelHandlerContext ctx, M msg)
Take the givenMemcacheMessage
and encode it into a writableByteBuf
.-
Methods inherited from class io.netty.handler.codec.MessageToMessageEncoder
write
-
Methods inherited from class io.netty.channel.ChannelOutboundHandlerAdapter
bind, close, connect, deregister, disconnect, flush, read
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, exceptionCaught, handlerAdded, handlerRemoved, 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
exceptionCaught, handlerAdded, handlerRemoved
-
-
-
-
Method Detail
-
encode
protected void encode(ChannelHandlerContext ctx, java.lang.Object msg, java.util.List<java.lang.Object> out) throws java.lang.Exception
Description copied from class:MessageToMessageEncoder
Encode from one message to an other. This method will be called for each written message that can be handled by this encoder.- Specified by:
encode
in classMessageToMessageEncoder<java.lang.Object>
- Parameters:
ctx
- theChannelHandlerContext
which thisMessageToMessageEncoder
belongs tomsg
- the message to encode to an other oneout
- theList
into which the encoded msg should be added needs to do some kind of aggregation- Throws:
java.lang.Exception
- is thrown if an error occurs
-
acceptOutboundMessage
public boolean acceptOutboundMessage(java.lang.Object msg) throws java.lang.Exception
Description copied from class:MessageToMessageEncoder
Returnstrue
if the given message should be handled. Iffalse
it will be passed to the nextChannelOutboundHandler
in theChannelPipeline
.- Overrides:
acceptOutboundMessage
in classMessageToMessageEncoder<java.lang.Object>
- Throws:
java.lang.Exception
-
encodeMessage
protected abstract ByteBuf encodeMessage(ChannelHandlerContext ctx, M msg)
Take the givenMemcacheMessage
and encode it into a writableByteBuf
.- Parameters:
ctx
- the channel handler context.msg
- the message to encode.- Returns:
- the
ByteBuf
representation of the message.
-
contentLength
private static int contentLength(java.lang.Object msg)
Determine the content length of the given object.- Parameters:
msg
- the object to determine the length of.- Returns:
- the determined content length.
-
encodeAndRetain
private static java.lang.Object encodeAndRetain(java.lang.Object msg)
Encode the content, depending on the object type.- Parameters:
msg
- the object to encode.- Returns:
- the encoded object.
-
-