Home / Function/ encodeHeader() — netty Function Reference

encodeHeader() — netty Function Reference

Architecture documentation for the encodeHeader() function in QpackEncoder.java from the netty codebase.

Function java Buffer Allocators calls 8 called by 1

Entity Profile

Dependency Diagram

graph TD
  4290254a_d002_4407_68f0_95045618c5ff["encodeHeader()"]
  9e578dbc_12be_4439_554b_24e265961ea5["QpackEncoder"]
  4290254a_d002_4407_68f0_95045618c5ff -->|defined in| 9e578dbc_12be_4439_554b_24e265961ea5
  c02c31bf_f073_98b8_7f17_f6cd7211e31c["encodeHeaders()"]
  c02c31bf_f073_98b8_7f17_f6cd7211e31c -->|calls| 4290254a_d002_4407_68f0_95045618c5ff
  4e8cb2d3_5e5f_ee8e_1b58_767b9e28c8b0["encodeLiteral()"]
  4290254a_d002_4407_68f0_95045618c5ff -->|calls| 4e8cb2d3_5e5f_ee8e_1b58_767b9e28c8b0
  e6a8c78f_612c_a898_3946_dd974c0e8e72["encodeWithDynamicTable()"]
  4290254a_d002_4407_68f0_95045618c5ff -->|calls| e6a8c78f_612c_a898_3946_dd974c0e8e72
  e5dd0675_23b6_2e4d_161a_a83f05c006a9["tryEncodeWithDynamicTable()"]
  4290254a_d002_4407_68f0_95045618c5ff -->|calls| e5dd0675_23b6_2e4d_161a_a83f05c006a9
  ff05e54c_ab86_28f0_9c02_ca61844188a2["tryAddToDynamicTable()"]
  4290254a_d002_4407_68f0_95045618c5ff -->|calls| ff05e54c_ab86_28f0_9c02_ca61844188a2
  07b6b4b6_0f8d_7e39_baf3_06035d82689b["encodePostBaseIndexed()"]
  4290254a_d002_4407_68f0_95045618c5ff -->|calls| 07b6b4b6_0f8d_7e39_baf3_06035d82689b
  4a1423e0_537b_7a93_4ca7_87c2b75fd5a3["encodeIndexedDynamicTable()"]
  4290254a_d002_4407_68f0_95045618c5ff -->|calls| 4a1423e0_537b_7a93_4ca7_87c2b75fd5a3
  ffdf8c85_1a54_25cb_b4c3_c5e2b4ffe9b9["encodeLiteralWithNameRefStaticTable()"]
  4290254a_d002_4407_68f0_95045618c5ff -->|calls| ffdf8c85_1a54_25cb_b4c3_c5e2b4ffe9b9
  aecc0b51_b4bf_12ee_de58_fe48c890656f["encodeIndexedStaticTable()"]
  4290254a_d002_4407_68f0_95045618c5ff -->|calls| aecc0b51_b4bf_12ee_de58_fe48c890656f
  style 4290254a_d002_4407_68f0_95045618c5ff fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http3/src/main/java/io/netty/handler/codec/http3/QpackEncoder.java lines 207–237

    private int encodeHeader(QpackAttributes qpackAttributes, ByteBuf out, int base, CharSequence name,
                             CharSequence value) {
        int index = QpackStaticTable.findFieldIndex(name, value);
        if (index == QpackStaticTable.NOT_FOUND) {
            if (qpackAttributes.dynamicTableDisabled()) {
                encodeLiteral(out, name, value);
                return DYNAMIC_TABLE_ENCODE_NOT_POSSIBLE;
            }
            return encodeWithDynamicTable(qpackAttributes, out, base, name, value);
        } else if ((index & QpackStaticTable.MASK_NAME_REF) == QpackStaticTable.MASK_NAME_REF) {
            int dynamicTblIdx = tryEncodeWithDynamicTable(qpackAttributes, out, base, name, value);
            if (dynamicTblIdx >= 0) {
                return dynamicTblIdx;
            }
            final int nameIdx = index ^ QpackStaticTable.MASK_NAME_REF;
            dynamicTblIdx = tryAddToDynamicTable(qpackAttributes, true, nameIdx, name, value);
            if (dynamicTblIdx >= 0) {
                if (dynamicTblIdx >= base) {
                    encodePostBaseIndexed(out, base, dynamicTblIdx);
                } else {
                    encodeIndexedDynamicTable(out, base, dynamicTblIdx);
                }
                return dynamicTblIdx;
            }
            encodeLiteralWithNameRefStaticTable(out, nameIdx, value);
        } else {
            encodeIndexedStaticTable(out, index);
        }
        return qpackAttributes.dynamicTableDisabled() ? DYNAMIC_TABLE_ENCODE_NOT_POSSIBLE :
                DYNAMIC_TABLE_ENCODE_NOT_DONE;
    }

Domain

Subdomains

Called By

Frequently Asked Questions

What does encodeHeader() do?
encodeHeader() is a function in the netty codebase, defined in codec-http3/src/main/java/io/netty/handler/codec/http3/QpackEncoder.java.
Where is encodeHeader() defined?
encodeHeader() is defined in codec-http3/src/main/java/io/netty/handler/codec/http3/QpackEncoder.java at line 207.
What does encodeHeader() call?
encodeHeader() calls 8 function(s): encodeIndexedDynamicTable, encodeIndexedStaticTable, encodeLiteral, encodeLiteralWithNameRefStaticTable, encodePostBaseIndexed, encodeWithDynamicTable, tryAddToDynamicTable, tryEncodeWithDynamicTable.
What calls encodeHeader()?
encodeHeader() is called by 1 function(s): encodeHeaders.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free