Package io.netty.handler.codec.http
Class EspressoHttpObjectEncoder<H extends io.netty.handler.codec.http.HttpMessage>
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelOutboundHandlerAdapter
-
- io.netty.handler.codec.EspressoMessageToMessageEncoder<java.lang.Object>
-
- io.netty.handler.codec.http.EspressoHttpObjectEncoder<H>
-
- All Implemented Interfaces:
io.netty.channel.ChannelHandler
,io.netty.channel.ChannelOutboundHandler
public abstract class EspressoHttpObjectEncoder<H extends io.netty.handler.codec.http.HttpMessage> extends EspressoMessageToMessageEncoder<java.lang.Object>
Forked from Netty 4.1.42.Final. Main change is to extend EspressoMessageToMessageEncoder to avoid creatingTypeParameterMatcher
. Encodes anHttpMessage
or anHttpContent
into aByteBuf
.Extensibility
Please note that this encoder is designed to be extended to implement a protocol derived from HTTP, such as RTSP and ICAP. To implement the encoder of such a derived protocol, extend this class and implement all abstract methods properly.
-
-
Constructor Summary
Constructors Constructor Description EspressoHttpObjectEncoder()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description boolean
acceptOutboundMessage(java.lang.Object msg)
protected void
encode(io.netty.channel.ChannelHandlerContext ctx, java.lang.Object msg, java.util.List<java.lang.Object> out)
Encode from one message to an other.protected static void
encodeAscii(java.lang.String s, io.netty.buffer.ByteBuf buf)
Deprecated.protected void
encodeHeaders(io.netty.handler.codec.http.HttpHeaders headers, io.netty.buffer.ByteBuf buf)
Encode theHttpHeaders
into aByteBuf
.protected abstract void
encodeInitialLine(io.netty.buffer.ByteBuf buf, H message)
protected boolean
isContentAlwaysEmpty(H msg)
Determine whether a message has a content or not.protected void
sanitizeHeadersBeforeEncode(H msg, boolean isAlwaysEmpty)
Allows to sanitize headers of the message before encoding these.-
Methods inherited from class io.netty.handler.codec.EspressoMessageToMessageEncoder
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
-
-
-
-
Method Detail
-
encode
protected void encode(io.netty.channel.ChannelHandlerContext ctx, java.lang.Object msg, java.util.List<java.lang.Object> out) throws java.lang.Exception
Description copied from class:EspressoMessageToMessageEncoder
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 classEspressoMessageToMessageEncoder<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
-
encodeHeaders
protected void encodeHeaders(io.netty.handler.codec.http.HttpHeaders headers, io.netty.buffer.ByteBuf buf)
Encode theHttpHeaders
into aByteBuf
.
-
sanitizeHeadersBeforeEncode
protected void sanitizeHeadersBeforeEncode(H msg, boolean isAlwaysEmpty)
Allows to sanitize headers of the message before encoding these.
-
isContentAlwaysEmpty
protected boolean isContentAlwaysEmpty(H msg)
Determine whether a message has a content or not. Some message may have headers indicating a content without having an actual content, e.g the response to an HEAD or CONNECT request.- Parameters:
msg
- the message to test- Returns:
true
to signal the message has no content
-
acceptOutboundMessage
public boolean acceptOutboundMessage(java.lang.Object msg) throws java.lang.Exception
- Overrides:
acceptOutboundMessage
in classEspressoMessageToMessageEncoder<java.lang.Object>
- Throws:
java.lang.Exception
-
encodeAscii
@Deprecated protected static void encodeAscii(java.lang.String s, io.netty.buffer.ByteBuf buf)
Deprecated.
-
encodeInitialLine
protected abstract void encodeInitialLine(io.netty.buffer.ByteBuf buf, H message) throws java.lang.Exception
- Throws:
java.lang.Exception
-
-