Home / Class/ Http2DataChunkedInput Class — netty Architecture

Http2DataChunkedInput Class — netty Architecture

Architecture documentation for the Http2DataChunkedInput class in Http2DataChunkedInput.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  d0e69f3e_3758_33e6_945f_1613e66f04e7["Http2DataChunkedInput"]
  28b776d3_d72a_08f8_7a4c_3cb4ed8a5e34["Http2DataChunkedInput.java"]
  d0e69f3e_3758_33e6_945f_1613e66f04e7 -->|defined in| 28b776d3_d72a_08f8_7a4c_3cb4ed8a5e34
  32b02281_4dc8_17ee_c49a_9cc58cd8a94e["Http2DataChunkedInput()"]
  d0e69f3e_3758_33e6_945f_1613e66f04e7 -->|method| 32b02281_4dc8_17ee_c49a_9cc58cd8a94e
  eeb37355_6306_8994_70ef_9a78b80bc5dc["isEndOfInput()"]
  d0e69f3e_3758_33e6_945f_1613e66f04e7 -->|method| eeb37355_6306_8994_70ef_9a78b80bc5dc
  62f5a218_76ab_92c5_1075_0993b8e27df5["close()"]
  d0e69f3e_3758_33e6_945f_1613e66f04e7 -->|method| 62f5a218_76ab_92c5_1075_0993b8e27df5
  965f6236_7052_15d8_bdb4_221f6abd62cd["Http2DataFrame()"]
  d0e69f3e_3758_33e6_945f_1613e66f04e7 -->|method| 965f6236_7052_15d8_bdb4_221f6abd62cd
  1627123f_9eee_c6f6_6835_7e6f258de50a["length()"]
  d0e69f3e_3758_33e6_945f_1613e66f04e7 -->|method| 1627123f_9eee_c6f6_6835_7e6f258de50a
  8179e1c7_3f98_1f3f_e752_6a9df237e86a["progress()"]
  d0e69f3e_3758_33e6_945f_1613e66f04e7 -->|method| 8179e1c7_3f98_1f3f_e752_6a9df237e86a

Relationship Graph

Source Code

codec-http2/src/main/java/io/netty/handler/codec/http2/Http2DataChunkedInput.java lines 46–116

public final class Http2DataChunkedInput implements ChunkedInput<Http2DataFrame> {

    private final ChunkedInput<ByteBuf> input;
    private final Http2FrameStream stream;
    private boolean endStreamSent;

    /**
     * Creates a new instance using the specified input.
     *
     * @param input  {@link ChunkedInput} containing data to write
     * @param stream {@link Http2FrameStream} holding stream info
     */
    public Http2DataChunkedInput(ChunkedInput<ByteBuf> input, Http2FrameStream stream) {
        this.input = ObjectUtil.checkNotNull(input, "input");
        this.stream = ObjectUtil.checkNotNull(stream, "stream");
    }

    @Override
    public boolean isEndOfInput() throws Exception {
        if (input.isEndOfInput()) {
            // Only end of input after last HTTP chunk has been sent
            return endStreamSent;
        }
        return false;
    }

    @Override
    public void close() throws Exception {
        input.close();
    }

    @Deprecated
    @Override
    public Http2DataFrame readChunk(ChannelHandlerContext ctx) throws Exception {
        return readChunk(ctx.alloc());
    }

    @Override
    public Http2DataFrame readChunk(ByteBufAllocator allocator) throws Exception {
        if (endStreamSent) {
            return null;
        }

        if (input.isEndOfInput()) {
            endStreamSent = true;
            return new DefaultHttp2DataFrame(true).stream(stream);
        }

        ByteBuf buf = input.readChunk(allocator);
        if (buf == null) {
            return null;
        }

        final Http2DataFrame dataFrame = new DefaultHttp2DataFrame(buf, input.isEndOfInput()).stream(stream);
        if (dataFrame.isEndStream()) {
            endStreamSent = true;
        }

        return dataFrame;
    }

    @Override
    public long length() {
        return input.length();
    }

    @Override
    public long progress() {
        return input.progress();
    }
}

Frequently Asked Questions

What is the Http2DataChunkedInput class?
Http2DataChunkedInput is a class in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/Http2DataChunkedInput.java.
Where is Http2DataChunkedInput defined?
Http2DataChunkedInput is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/Http2DataChunkedInput.java at line 46.

Analyze Your Own Codebase

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

Try Supermodel Free