Home / Class/ PerMessageDeflateServerExtensionHandshaker Class — netty Architecture

PerMessageDeflateServerExtensionHandshaker Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  ff5c28aa_bf33_88bd_f12c_f405045d33d6["PerMessageDeflateServerExtensionHandshaker"]
  100d2d38_c8b2_5421_183b_6e8e04172435["PerMessageDeflateServerExtensionHandshaker.java"]
  ff5c28aa_bf33_88bd_f12c_f405045d33d6 -->|defined in| 100d2d38_c8b2_5421_183b_6e8e04172435
  c5818099_d448_d6bc_0a09_e6dbac799cc5["PerMessageDeflateServerExtensionHandshaker()"]
  ff5c28aa_bf33_88bd_f12c_f405045d33d6 -->|method| c5818099_d448_d6bc_0a09_e6dbac799cc5
  a01e1140_3aa3_3cc8_c5a1_bc667b439d4d["WebSocketServerExtension()"]
  ff5c28aa_bf33_88bd_f12c_f405045d33d6 -->|method| a01e1140_3aa3_3cc8_c5a1_bc667b439d4d

Relationship Graph

Source Code

codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateServerExtensionHandshaker.java lines 36–317

public final class PerMessageDeflateServerExtensionHandshaker implements WebSocketServerExtensionHandshaker {

    public static final int MIN_WINDOW_SIZE = 8;
    public static final int MAX_WINDOW_SIZE = 15;

    static final String PERMESSAGE_DEFLATE_EXTENSION = "permessage-deflate";
    static final String CLIENT_MAX_WINDOW = "client_max_window_bits";
    static final String SERVER_MAX_WINDOW = "server_max_window_bits";
    static final String CLIENT_NO_CONTEXT = "client_no_context_takeover";
    static final String SERVER_NO_CONTEXT = "server_no_context_takeover";

    private final int compressionLevel;
    private final boolean allowServerWindowSize;
    private final int preferredClientWindowSize;
    private final boolean allowServerNoContext;
    private final boolean preferredClientNoContext;
    private final WebSocketExtensionFilterProvider extensionFilterProvider;
    private final int maxAllocation;

    /**
     * Constructor with default configuration.
     *
     * @deprecated
     *            Use {@link PerMessageDeflateServerExtensionHandshaker#
     *            PerMessageDeflateServerExtensionHandshaker(int)}.
     */
    @Deprecated
    public PerMessageDeflateServerExtensionHandshaker() {
        this(0);
    }

    /**
     * Constructor with default configuration.
     *
     * @param maxAllocation
     *            Maximum size of the decompression buffer. Must be >= 0. If zero, maximum size is not limited.
     */
    public PerMessageDeflateServerExtensionHandshaker(int maxAllocation) {
        this(6, ZlibCodecFactory.isSupportingWindowSizeAndMemLevel(), MAX_WINDOW_SIZE, false, false, maxAllocation);
    }

    /**
     * Constructor with custom configuration.
     *
     * @param compressionLevel
     *            Compression level between 0 and 9 (default is 6).
     * @param allowServerWindowSize
     *            allows WebSocket client to customize the server inflater window size
     *            (default is false).
     * @param preferredClientWindowSize
     *            indicates the preferred client window size to use if client inflater is customizable.
     * @param allowServerNoContext
     *            allows WebSocket client to activate server_no_context_takeover
     *            (default is false).
     * @param preferredClientNoContext
     *            indicates if server prefers to activate client_no_context_takeover
     *            if client is compatible with (default is false).
     * @deprecated
     *            Use {@link PerMessageDeflateServerExtensionHandshaker#PerMessageDeflateServerExtensionHandshaker(
     *            int, boolean, int, boolean, boolean, int)}.
     */
    @Deprecated
    public PerMessageDeflateServerExtensionHandshaker(int compressionLevel, boolean allowServerWindowSize,
                                                      int preferredClientWindowSize,
                                                      boolean allowServerNoContext, boolean preferredClientNoContext) {
        this(compressionLevel, allowServerWindowSize, preferredClientWindowSize, allowServerNoContext,
                preferredClientNoContext, 0);
    }

    /**
     * Constructor with custom configuration.
     *
     * @param compressionLevel
     *            Compression level between 0 and 9 (default is 6).
     * @param allowServerWindowSize
     *            allows WebSocket client to customize the server inflater window size
     *            (default is false).
     * @param preferredClientWindowSize
     *            indicates the preferred client window size to use if client inflater is customizable.
     * @param allowServerNoContext
     *            allows WebSocket client to activate server_no_context_takeover

Frequently Asked Questions

What is the PerMessageDeflateServerExtensionHandshaker class?
PerMessageDeflateServerExtensionHandshaker is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateServerExtensionHandshaker.java.
Where is PerMessageDeflateServerExtensionHandshaker defined?
PerMessageDeflateServerExtensionHandshaker is defined in codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateServerExtensionHandshaker.java at line 36.

Analyze Your Own Codebase

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

Try Supermodel Free