Home / Function/ readPushPromiseFrame() — netty Function Reference

readPushPromiseFrame() — netty Function Reference

Architecture documentation for the readPushPromiseFrame() function in DefaultHttp2FrameReader.java from the netty codebase.

Function java Buffer Allocators calls 6 called by 1

Entity Profile

Dependency Diagram

graph TD
  996fd454_25d0_9db7_efcf_42958509cd2a["readPushPromiseFrame()"]
  3768d640_58c2_34e7_3d69_a4b578e0d11a["DefaultHttp2FrameReader"]
  996fd454_25d0_9db7_efcf_42958509cd2a -->|defined in| 3768d640_58c2_34e7_3d69_a4b578e0d11a
  e711693c_32ed_ac69_29f1_ce5694750979["processPayloadState()"]
  e711693c_32ed_ac69_29f1_ce5694750979 -->|calls| 996fd454_25d0_9db7_efcf_42958509cd2a
  3b43af15_c215_93fc_5c51_a2abe4d047d9["readPadding()"]
  996fd454_25d0_9db7_efcf_42958509cd2a -->|calls| 3b43af15_c215_93fc_5c51_a2abe4d047d9
  d810894b_be57_6864_4a7d_32bddb4d68f3["getStreamId()"]
  996fd454_25d0_9db7_efcf_42958509cd2a -->|calls| d810894b_be57_6864_4a7d_32bddb4d68f3
  ca5e2820_c99c_1b79_5ed5_5304bbcba862["processFragment()"]
  996fd454_25d0_9db7_efcf_42958509cd2a -->|calls| ca5e2820_c99c_1b79_5ed5_5304bbcba862
  d3cf3714_2259_6a41_c730_30d5c2dc9945["addFragment()"]
  996fd454_25d0_9db7_efcf_42958509cd2a -->|calls| d3cf3714_2259_6a41_c730_30d5c2dc9945
  64b75707_7a6c_7e26_98ea_05793212d7e4["lengthWithoutTrailingPadding()"]
  996fd454_25d0_9db7_efcf_42958509cd2a -->|calls| 64b75707_7a6c_7e26_98ea_05793212d7e4
  a643c6da_1c17_3da8_8399_b25cd9e26e55["resetHeadersContinuationIfEnd()"]
  996fd454_25d0_9db7_efcf_42958509cd2a -->|calls| a643c6da_1c17_3da8_8399_b25cd9e26e55
  style 996fd454_25d0_9db7_efcf_42958509cd2a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameReader.java lines 533–561

    private void readPushPromiseFrame(final ChannelHandlerContext ctx, ByteBuf payload,
            Http2FrameListener listener) throws Http2Exception {
        final int pushPromiseStreamId = streamId;
        final int padding = readPadding(payload);
        final int promisedStreamId = readUnsignedInt(payload);

        // Create a handler that invokes the listener when the header block is complete.
        headersContinuation = new HeadersContinuation() {
            @Override
            public int getStreamId() {
                return pushPromiseStreamId;
            }

            @Override
            public void processFragment(boolean endOfHeaders, ByteBuf fragment, int len,
                    Http2FrameListener listener) throws Http2Exception {
                headersBlockBuilder().addFragment(fragment, len, ctx.alloc(), endOfHeaders);
                if (endOfHeaders) {
                    listener.onPushPromiseRead(ctx, pushPromiseStreamId, promisedStreamId,
                            headersBlockBuilder().headers(), padding);
                }
            }
        };

        // Process the initial fragment, invoking the listener's callback if end of headers.
        int len = lengthWithoutTrailingPadding(payload.readableBytes(), padding);
        headersContinuation.processFragment(flags.endOfHeaders(), payload, len, listener);
        resetHeadersContinuationIfEnd(flags.endOfHeaders());
    }

Domain

Subdomains

Frequently Asked Questions

What does readPushPromiseFrame() do?
readPushPromiseFrame() is a function in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameReader.java.
Where is readPushPromiseFrame() defined?
readPushPromiseFrame() is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameReader.java at line 533.
What does readPushPromiseFrame() call?
readPushPromiseFrame() calls 6 function(s): addFragment, getStreamId, lengthWithoutTrailingPadding, processFragment, readPadding, resetHeadersContinuationIfEnd.
What calls readPushPromiseFrame()?
readPushPromiseFrame() is called by 1 function(s): processPayloadState.

Analyze Your Own Codebase

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

Try Supermodel Free