Home / Class/ DelegatingDecompressorFrameListener Class — netty Architecture

DelegatingDecompressorFrameListener Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  5c336d64_231e_fffd_78be_6ce616e9bc8c["DelegatingDecompressorFrameListener"]
  cdec0447_51ad_ffa5_e1e6_2257690237d4["DelegatingDecompressorFrameListener.java"]
  5c336d64_231e_fffd_78be_6ce616e9bc8c -->|defined in| cdec0447_51ad_ffa5_e1e6_2257690237d4
  e8a6a47f_a273_9748_8b60_72f65e6a6282["DelegatingDecompressorFrameListener()"]
  5c336d64_231e_fffd_78be_6ce616e9bc8c -->|method| e8a6a47f_a273_9748_8b60_72f65e6a6282
  57403601_677c_34ae_4ad2_1ca3c636837c["onDataRead()"]
  5c336d64_231e_fffd_78be_6ce616e9bc8c -->|method| 57403601_677c_34ae_4ad2_1ca3c636837c
  b272741e_73ec_9c96_d9fe_7440b0e45b49["onHeadersRead()"]
  5c336d64_231e_fffd_78be_6ce616e9bc8c -->|method| b272741e_73ec_9c96_d9fe_7440b0e45b49
  bcf5a5ca_62ae_c13a_7d3b_1d6332684fde["EmbeddedChannel()"]
  5c336d64_231e_fffd_78be_6ce616e9bc8c -->|method| bcf5a5ca_62ae_c13a_7d3b_1d6332684fde
  0eb0cdd8_3703_8994_1675_6aa38f40eb4b["CharSequence()"]
  5c336d64_231e_fffd_78be_6ce616e9bc8c -->|method| 0eb0cdd8_3703_8994_1675_6aa38f40eb4b
  dad4ac94_e709_5430_3802_707b4b8e8ca0["initDecompressor()"]
  5c336d64_231e_fffd_78be_6ce616e9bc8c -->|method| dad4ac94_e709_5430_3802_707b4b8e8ca0
  5d3e10a1_2485_47e9_aff0_57e2acb6d249["Http2Decompressor()"]
  5c336d64_231e_fffd_78be_6ce616e9bc8c -->|method| 5d3e10a1_2485_47e9_aff0_57e2acb6d249

Relationship Graph

Source Code

codec-http2/src/main/java/io/netty/handler/codec/http2/DelegatingDecompressorFrameListener.java lines 51–494

public class DelegatingDecompressorFrameListener extends Http2FrameListenerDecorator {

    private final Http2Connection connection;
    private final boolean strict;
    private boolean flowControllerInitialized;
    private final Http2Connection.PropertyKey propertyKey;
    private final int maxAllocation;

    /**
     * Create a new instance.
     *
     * @param connection the connection to read data which should be decompressed
     * @param listener the delegate listener used by {@link Http2FrameListenerDecorator}
     * @deprecated
     *      Use {@link DelegatingDecompressorFrameListener#DelegatingDecompressorFrameListener(Http2Connection,
     *      Http2FrameListener, int)}
     */
    @Deprecated
    public DelegatingDecompressorFrameListener(Http2Connection connection, Http2FrameListener listener) {
        this(connection, listener, 0);
    }

    /**
     * Create a new instance.
     *
     * @param connection the connection to read data which should be decompressed
     * @param listener the delegate listener used by {@link Http2FrameListenerDecorator}
     * @param maxAllocation maximum size of the decompression buffer. Must be >= 0.
     *                      If zero, maximum size is not limited by decoder.
     */
    public DelegatingDecompressorFrameListener(Http2Connection connection, Http2FrameListener listener,
                                               int maxAllocation) {
        this(connection, listener, true, maxAllocation);
    }

    /**
     * Create a new instance.
     *
     * @param connection the connection to read data which should be decompressed
     * @param listener the delegate listener used by {@link Http2FrameListenerDecorator}
     * @param strict if `true`, {@link ZlibWrapper#ZLIB} will be used for the decoder,
     *               otherwise the decoder can fallback to {@link ZlibWrapper#NONE}
     * @deprecated
     *      Use {@link DelegatingDecompressorFrameListener#DelegatingDecompressorFrameListener(Http2Connection,
     *      Http2FrameListener, boolean, int)}
     */
    @Deprecated
    public DelegatingDecompressorFrameListener(Http2Connection connection, Http2FrameListener listener,
                                               boolean strict) {
        this(connection, listener, strict, 0);
    }

    /**
     * Create a new instance.
     *
     * @param connection the connection to read data which should be decompressed
     * @param listener the delegate listener used by {@link Http2FrameListenerDecorator}
     * @param strict if `true`, {@link ZlibWrapper#ZLIB} will be used for the decoder,
     *               otherwise the decoder can fallback to {@link ZlibWrapper#NONE}
     * @param maxAllocation maximum size of the decompression buffer. Must be >= 0.
     *                      If zero, maximum size is not limited by decoder.
     */
    public DelegatingDecompressorFrameListener(Http2Connection connection, Http2FrameListener listener,
                    boolean strict, int maxAllocation) {
        super(listener);
        this.connection = connection;
        this.strict = strict;
        this.maxAllocation = checkPositiveOrZero(maxAllocation, "maxAllocation");

        propertyKey = connection.newKey();
        connection.addListener(new Http2ConnectionAdapter() {
            @Override
            public void onStreamRemoved(Http2Stream stream) {
                final Http2Decompressor decompressor = decompressor(stream);
                if (decompressor != null) {
                    decompressor.cleanup();
                }
            }
        });
    }

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free