Home / Class/ HeaderEntry Class — netty Architecture

HeaderEntry Class — netty Architecture

Architecture documentation for the HeaderEntry class in QpackEncoderDynamicTable.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  dfcf865a_659c_81ef_a37d_2eef0188cb00["HeaderEntry"]
  e46b63f7_a325_3795_be25_17be3a787249["QpackEncoderDynamicTable.java"]
  dfcf865a_659c_81ef_a37d_2eef0188cb00 -->|defined in| e46b63f7_a325_3795_be25_17be3a787249
  bc726fcd_5586_78b6_a62c_3e91abbca967["HeaderEntry()"]
  dfcf865a_659c_81ef_a37d_2eef0188cb00 -->|method| bc726fcd_5586_78b6_a62c_3e91abbca967
  1d28aa7d_dd24_0c81_0850_6401129f539d["remove()"]
  dfcf865a_659c_81ef_a37d_2eef0188cb00 -->|method| 1d28aa7d_dd24_0c81_0850_6401129f539d
  5804f92d_4801_bc97_e650_6a698540d23d["addNextTo()"]
  dfcf865a_659c_81ef_a37d_2eef0188cb00 -->|method| 5804f92d_4801_bc97_e650_6a698540d23d

Relationship Graph

Source Code

codec-http3/src/main/java/io/netty/handler/codec/http3/QpackEncoderDynamicTable.java lines 442–489

    private static final class HeaderEntry extends QpackHeaderField {
        /**
         * Pointer to the next entry in insertion order with a different {@link #hash} than this entry.
         */
        HeaderEntry next;

        /**
         * Pointer to the next entry in insertion order with the same {@link #hash} as this entry, a.k.a hash collisions
         */
        HeaderEntry nextSibling;

        /**
         * Number of header blocks that refer to this entry as the value for its <a
         * href="https://www.rfc-editor.org/rfc/rfc9204.html#name-required-insert-count">
         * required insert count</a>
         */
        int refCount;

        /**
         * Hashcode for this entry.
         */
        final int hash;

        /**
         * Insertion index for this entry.
         */
        final int index;

        HeaderEntry(int hash, CharSequence name, CharSequence value, int index, @Nullable HeaderEntry nextSibling) {
            super(name, value);
            this.index = index;
            this.hash = hash;
            this.nextSibling = nextSibling;
        }

        void remove(HeaderEntry prev) {
            assert prev != this;
            prev.next = next;
            next = null; // null references to prevent nepotism in generational GC.
            nextSibling = null;
        }

        void addNextTo(HeaderEntry prev) {
            assert prev != this;
            this.next = prev.next;
            prev.next = this;
        }
    }

Frequently Asked Questions

What is the HeaderEntry class?
HeaderEntry is a class in the netty codebase, defined in codec-http3/src/main/java/io/netty/handler/codec/http3/QpackEncoderDynamicTable.java.
Where is HeaderEntry defined?
HeaderEntry is defined in codec-http3/src/main/java/io/netty/handler/codec/http3/QpackEncoderDynamicTable.java at line 442.

Analyze Your Own Codebase

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

Try Supermodel Free