decode() — netty Function Reference
Architecture documentation for the decode() function in Http3UnidirectionalStreamInboundHandler.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 1b08c453_9a02_86bf_622f_7896be128c86["decode()"] 36d5bd43_dd1d_08a7_bad2_6e9b8c3d046d["Http3UnidirectionalStreamInboundHandler"] 1b08c453_9a02_86bf_622f_7896be128c86 -->|defined in| 36d5bd43_dd1d_08a7_bad2_6e9b8c3d046d 44f4bc70_6564_439a_fc6c_13e2b47ed10f["initControlStream()"] 1b08c453_9a02_86bf_622f_7896be128c86 -->|calls| 44f4bc70_6564_439a_fc6c_13e2b47ed10f 5892c0b7_f8b1_d31b_666e_fb19c1fab403["initPushStream()"] 1b08c453_9a02_86bf_622f_7896be128c86 -->|calls| 5892c0b7_f8b1_d31b_666e_fb19c1fab403 d7833d8a_8a2d_e883_0d83_3de1cb9f5c7d["initQpackEncoderStream()"] 1b08c453_9a02_86bf_622f_7896be128c86 -->|calls| d7833d8a_8a2d_e883_0d83_3de1cb9f5c7d b02a352c_a34c_9982_b1be_a2c6474d8c7a["initQpackDecoderStream()"] 1b08c453_9a02_86bf_622f_7896be128c86 -->|calls| b02a352c_a34c_9982_b1be_a2c6474d8c7a 34b83b51_8921_70c5_8498_259b5e7aa1c1["initUnknownStream()"] 1b08c453_9a02_86bf_622f_7896be128c86 -->|calls| 34b83b51_8921_70c5_8498_259b5e7aa1c1 style 1b08c453_9a02_86bf_622f_7896be128c86 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http3/src/main/java/io/netty/handler/codec/http3/Http3UnidirectionalStreamInboundHandler.java lines 78–112
@Override
protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) {
if (!in.isReadable()) {
return;
}
int len = Http3CodecUtils.numBytesForVariableLengthInteger(in.getByte(in.readerIndex()));
if (in.readableBytes() < len) {
return;
}
long type = Http3CodecUtils.readVariableLengthInteger(in, len);
switch ((int) type) {
case HTTP3_CONTROL_STREAM_TYPE:
initControlStream(ctx);
break;
case HTTP3_PUSH_STREAM_TYPE:
int pushIdLen = Http3CodecUtils.numBytesForVariableLengthInteger(in.getByte(in.readerIndex()));
if (in.readableBytes() < pushIdLen) {
return;
}
long pushId = Http3CodecUtils.readVariableLengthInteger(in, pushIdLen);
initPushStream(ctx, pushId);
break;
case HTTP3_QPACK_ENCODER_STREAM_TYPE:
// See https://quicwg.org/base-drafts/draft-ietf-quic-qpack.html#enc-dec-stream-def
initQpackEncoderStream(ctx);
break;
case HTTP3_QPACK_DECODER_STREAM_TYPE:
// See https://quicwg.org/base-drafts/draft-ietf-quic-qpack.html#enc-dec-stream-def
initQpackDecoderStream(ctx);
break;
default:
initUnknownStream(ctx, type);
break;
}
}
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does decode() do?
decode() is a function in the netty codebase, defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3UnidirectionalStreamInboundHandler.java.
Where is decode() defined?
decode() is defined in codec-http3/src/main/java/io/netty/handler/codec/http3/Http3UnidirectionalStreamInboundHandler.java at line 78.
What does decode() call?
decode() calls 5 function(s): initControlStream, initPushStream, initQpackDecoderStream, initQpackEncoderStream, initUnknownStream.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free