Home / Function/ decode() — netty Function Reference

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

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