encode() — netty Function Reference
Architecture documentation for the encode() function in Http2StreamFrameToHttpObjectCodec.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 8d983c00_a1f6_85e6_8826_c9bfc2b8c5ac["encode()"] 28068ec0_f470_e63a_089d_e0d46f43718e["Http2StreamFrameToHttpObjectCodec"] 8d983c00_a1f6_85e6_8826_c9bfc2b8c5ac -->|defined in| 28068ec0_f470_e63a_089d_e0d46f43718e ca9e54a6_d1a1_f91d_b13a_ec48a0dc7941["encodeLastContent()"] 8d983c00_a1f6_85e6_8826_c9bfc2b8c5ac -->|calls| ca9e54a6_d1a1_f91d_b13a_ec48a0dc7941 style 8d983c00_a1f6_85e6_8826_c9bfc2b8c5ac fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http2/src/main/java/io/netty/handler/codec/http2/Http2StreamFrameToHttpObjectCodec.java lines 152–192
@Override
protected void encode(ChannelHandlerContext ctx, HttpObject obj, List<Object> out) throws Exception {
// 1xx (excluding 101) is typically a FullHttpResponse, but the decoded
// Http2HeadersFrame should not be marked as endStream=true
if (obj instanceof HttpResponse) {
final HttpResponse res = (HttpResponse) obj;
final HttpResponseStatus status = res.status();
final int code = status.code();
final HttpStatusClass statusClass = status.codeClass();
// An informational response using a 1xx status code other than 101 is
// transmitted as a HEADERS frame
if (statusClass == HttpStatusClass.INFORMATIONAL && code != 101) {
if (res instanceof FullHttpResponse) {
final Http2Headers headers = toHttp2Headers(ctx, res);
out.add(new DefaultHttp2HeadersFrame(headers, false));
return;
} else {
throw new EncoderException(status + " must be a FullHttpResponse");
}
}
}
if (obj instanceof HttpMessage) {
Http2Headers headers = toHttp2Headers(ctx, (HttpMessage) obj);
boolean noMoreFrames = false;
if (obj instanceof FullHttpMessage) {
FullHttpMessage full = (FullHttpMessage) obj;
noMoreFrames = !full.content().isReadable() && full.trailingHeaders().isEmpty();
}
out.add(new DefaultHttp2HeadersFrame(headers, noMoreFrames));
}
if (obj instanceof LastHttpContent) {
LastHttpContent last = (LastHttpContent) obj;
encodeLastContent(last, out);
} else if (obj instanceof HttpContent) {
HttpContent cont = (HttpContent) obj;
out.add(new DefaultHttp2DataFrame(cont.content().retain(), false));
}
}
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does encode() do?
encode() is a function in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/Http2StreamFrameToHttpObjectCodec.java.
Where is encode() defined?
encode() is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/Http2StreamFrameToHttpObjectCodec.java at line 152.
What does encode() call?
encode() calls 1 function(s): encodeLastContent.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free