Home / Function/ sendInsertCountIncrementIfRequired() — netty Function Reference

sendInsertCountIncrementIfRequired() — netty Function Reference

Architecture documentation for the sendInsertCountIncrementIfRequired() function in QpackDecoder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  e474bfda_59e1_13f2_e4fb_817e85f7b5d8["sendInsertCountIncrementIfRequired()"]
  90fa2d3f_8d04_4c74_e2ce_52229be77194["QpackDecoder"]
  e474bfda_59e1_13f2_e4fb_817e85f7b5d8 -->|defined in| 90fa2d3f_8d04_4c74_e2ce_52229be77194
  cf54764f_0f46_324e_a390_7bfbb09c7843["insertWithNameReference()"]
  cf54764f_0f46_324e_a390_7bfbb09c7843 -->|calls| e474bfda_59e1_13f2_e4fb_817e85f7b5d8
  8109094a_a1bc_ae66_9de0_d94d09f5b34a["insertLiteral()"]
  8109094a_a1bc_ae66_9de0_d94d09f5b34a -->|calls| e474bfda_59e1_13f2_e4fb_817e85f7b5d8
  d78249f5_d28a_0d83_3fe2_d14954225d00["duplicate()"]
  d78249f5_d28a_0d83_3fe2_d14954225d00 -->|calls| e474bfda_59e1_13f2_e4fb_817e85f7b5d8
  style e474bfda_59e1_13f2_e4fb_817e85f7b5d8 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http3/src/main/java/io/netty/handler/codec/http3/QpackDecoder.java lines 487–515

    private void sendInsertCountIncrementIfRequired(QuicStreamChannel qpackDecoderStream) throws QpackException {
        final int insertCount = dynamicTable.insertCount();
        final List<Runnable> runnables = this.blockedStreams.get(insertCount);
        if (runnables != null) {
            boolean failed = false;
            for (Runnable runnable : runnables) {
                try {
                    runnable.run();
                } catch (Exception e) {
                    failed = true;
                    logger.error("Failed to resume a blocked stream {}.", runnable, e);
                }
            }
            if (failed) {
                throw BLOCKED_STREAM_RESUMPTION_FAILED;
            }
        }
        if (stateSyncStrategy.entryAdded(insertCount)) {
            // https://www.rfc-editor.org/rfc/rfc9204.html#name-insert-count-increment
            //   0   1   2   3   4   5   6   7
            // +---+---+---+---+---+---+---+---+
            // | 0 | 0 |     Increment (6+)    |
            // +---+---+-----------------------+
            final ByteBuf incr = qpackDecoderStream.alloc().buffer(8);
            encodePrefixedInteger(incr, (byte) 0b0, 6, insertCount - lastAckInsertCount);
            lastAckInsertCount = insertCount;
            closeOnFailure(qpackDecoderStream.writeAndFlush(incr));
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does sendInsertCountIncrementIfRequired() do?
sendInsertCountIncrementIfRequired() is a function in the netty codebase, defined in codec-http3/src/main/java/io/netty/handler/codec/http3/QpackDecoder.java.
Where is sendInsertCountIncrementIfRequired() defined?
sendInsertCountIncrementIfRequired() is defined in codec-http3/src/main/java/io/netty/handler/codec/http3/QpackDecoder.java at line 487.
What calls sendInsertCountIncrementIfRequired()?
sendInsertCountIncrementIfRequired() is called by 3 function(s): duplicate, insertLiteral, insertWithNameReference.

Analyze Your Own Codebase

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

Try Supermodel Free