Home / Function/ setCapacity() — netty Function Reference

setCapacity() — netty Function Reference

Architecture documentation for the setCapacity() function in HpackDynamicTable.java from the netty codebase.

Function java Buffer Allocators calls 2 called by 1

Entity Profile

Dependency Diagram

graph TD
  6eb146ec_7738_9327_a090_71feef80629d["setCapacity()"]
  feed71e9_4455_9bda_6187_d37edd627c61["HpackDynamicTable"]
  6eb146ec_7738_9327_a090_71feef80629d -->|defined in| feed71e9_4455_9bda_6187_d37edd627c61
  dadc6b8a_e343_c864_4e2a_037e0d00e2e2["HpackDynamicTable()"]
  dadc6b8a_e343_c864_4e2a_037e0d00e2e2 -->|calls| 6eb146ec_7738_9327_a090_71feef80629d
  61b2a680_e65a_da65_797a_cdbf7d0f1757["clear()"]
  6eb146ec_7738_9327_a090_71feef80629d -->|calls| 61b2a680_e65a_da65_797a_cdbf7d0f1757
  d5ad6030_d26c_c0ab_aa8c_77ac80f9a8b6["length()"]
  6eb146ec_7738_9327_a090_71feef80629d -->|calls| d5ad6030_d26c_c0ab_aa8c_77ac80f9a8b6
  style 6eb146ec_7738_9327_a090_71feef80629d fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http2/src/main/java/io/netty/handler/codec/http2/HpackDynamicTable.java lines 153–200

    public void setCapacity(long capacity) {
        if (capacity < MIN_HEADER_TABLE_SIZE || capacity > MAX_HEADER_TABLE_SIZE) {
            throw new IllegalArgumentException("capacity is invalid: " + capacity);
        }
        // initially capacity will be -1 so init won't return here
        if (this.capacity == capacity) {
            return;
        }
        this.capacity = capacity;

        if (capacity == 0) {
            clear();
        } else {
            // initially size will be 0 so remove won't be called
            while (size > capacity) {
                remove();
            }
        }

        int maxEntries = (int) (capacity / HpackHeaderField.HEADER_ENTRY_OVERHEAD);
        if (capacity % HpackHeaderField.HEADER_ENTRY_OVERHEAD != 0) {
            maxEntries++;
        }

        // check if capacity change requires us to reallocate the array
        if (hpackHeaderFields != null && hpackHeaderFields.length == maxEntries) {
            return;
        }

        HpackHeaderField[] tmp = new HpackHeaderField[maxEntries];

        // initially length will be 0 so there will be no copy
        int len = length();
        if (hpackHeaderFields != null) {
            int cursor = tail;
            for (int i = 0; i < len; i++) {
                HpackHeaderField entry = hpackHeaderFields[cursor++];
                tmp[i] = entry;
                if (cursor == hpackHeaderFields.length) {
                    cursor = 0;
                }
            }
        }

        tail = 0;
        head = tail + len;
        hpackHeaderFields = tmp;
    }

Domain

Subdomains

Frequently Asked Questions

What does setCapacity() do?
setCapacity() is a function in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/HpackDynamicTable.java.
Where is setCapacity() defined?
setCapacity() is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/HpackDynamicTable.java at line 153.
What does setCapacity() call?
setCapacity() calls 2 function(s): clear, length.
What calls setCapacity()?
setCapacity() is called by 1 function(s): HpackDynamicTable.

Analyze Your Own Codebase

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

Try Supermodel Free