Home / Class/ PermessageDeflateExtension Class — netty Architecture

PermessageDeflateExtension Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  1a472f1c_a58a_4754_5aeb_5e53d0e05cbd["PermessageDeflateExtension"]
  100d2d38_c8b2_5421_183b_6e8e04172435["PerMessageDeflateServerExtensionHandshaker.java"]
  1a472f1c_a58a_4754_5aeb_5e53d0e05cbd -->|defined in| 100d2d38_c8b2_5421_183b_6e8e04172435
  d56cae2b_7c35_7afb_395d_d1f067324219["PermessageDeflateExtension()"]
  1a472f1c_a58a_4754_5aeb_5e53d0e05cbd -->|method| d56cae2b_7c35_7afb_395d_d1f067324219
  e2e0e83e_f1a2_4c72_70de_7c2fbafd140d["rsv()"]
  1a472f1c_a58a_4754_5aeb_5e53d0e05cbd -->|method| e2e0e83e_f1a2_4c72_70de_7c2fbafd140d
  7ea12659_af3b_be6e_7a37_a74b255f4192["WebSocketExtensionEncoder()"]
  1a472f1c_a58a_4754_5aeb_5e53d0e05cbd -->|method| 7ea12659_af3b_be6e_7a37_a74b255f4192
  7f752b4d_6450_a461_c315_f7e1983adfc3["WebSocketExtensionDecoder()"]
  1a472f1c_a58a_4754_5aeb_5e53d0e05cbd -->|method| 7f752b4d_6450_a461_c315_f7e1983adfc3
  0818c36e_c602_3fdf_135a_e084d58fb4f1["WebSocketExtensionData()"]
  1a472f1c_a58a_4754_5aeb_5e53d0e05cbd -->|method| 0818c36e_c602_3fdf_135a_e084d58fb4f1

Relationship Graph

Source Code

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

    private static class PermessageDeflateExtension implements WebSocketServerExtension {

        private final int compressionLevel;
        private final boolean serverNoContext;
        private final int serverWindowSize;
        private final boolean clientNoContext;
        private final int clientWindowSize;
        private final WebSocketExtensionFilterProvider extensionFilterProvider;
        private final int maxAllocation;

        PermessageDeflateExtension(int compressionLevel, boolean serverNoContext,
                int serverWindowSize, boolean clientNoContext, int clientWindowSize,
                WebSocketExtensionFilterProvider extensionFilterProvider, int maxAllocation) {
            this.compressionLevel = compressionLevel;
            this.serverNoContext = serverNoContext;
            this.serverWindowSize = serverWindowSize;
            this.clientNoContext = clientNoContext;
            this.clientWindowSize = clientWindowSize;
            this.extensionFilterProvider = extensionFilterProvider;
            this.maxAllocation = maxAllocation;
        }

        @Override
        public int rsv() {
            return RSV1;
        }

        @Override
        public WebSocketExtensionEncoder newExtensionEncoder() {
            return new PerMessageDeflateEncoder(compressionLevel, serverWindowSize, serverNoContext,
                                                extensionFilterProvider.encoderFilter());
        }

        @Override
        public WebSocketExtensionDecoder newExtensionDecoder() {
            return new PerMessageDeflateDecoder(clientNoContext, extensionFilterProvider.decoderFilter(),
                                                maxAllocation);
        }

        @Override
        public WebSocketExtensionData newReponseData() {
            HashMap<String, String> parameters = new HashMap<String, String>(4);
            if (serverNoContext) {
                parameters.put(SERVER_NO_CONTEXT, null);
            }
            if (clientNoContext) {
                parameters.put(CLIENT_NO_CONTEXT, null);
            }
            if (serverWindowSize != MAX_WINDOW_SIZE) {
                parameters.put(SERVER_MAX_WINDOW, Integer.toString(serverWindowSize));
            }
            if (clientWindowSize != MAX_WINDOW_SIZE) {
                parameters.put(CLIENT_MAX_WINDOW, Integer.toString(clientWindowSize));
            }
            return new WebSocketExtensionData(PERMESSAGE_DEFLATE_EXTENSION, parameters);
        }
    }

Frequently Asked Questions

What is the PermessageDeflateExtension class?
PermessageDeflateExtension 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 PermessageDeflateExtension defined?
PermessageDeflateExtension is defined in codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerMessageDeflateServerExtensionHandshaker.java at line 259.

Analyze Your Own Codebase

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

Try Supermodel Free