Home / Class/ PerFrameDeflateEncoder Class — netty Architecture

PerFrameDeflateEncoder Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  a460731b_a672_688b_c650_84ce73e3828d["PerFrameDeflateEncoder"]
  e2215be7_4bc1_2012_7128_1efb6a8a6e2b["PerFrameDeflateEncoder.java"]
  a460731b_a672_688b_c650_84ce73e3828d -->|defined in| e2215be7_4bc1_2012_7128_1efb6a8a6e2b
  b540a139_45f1_8659_00b0_1c0176aedf2b["PerFrameDeflateEncoder()"]
  a460731b_a672_688b_c650_84ce73e3828d -->|method| b540a139_45f1_8659_00b0_1c0176aedf2b
  07bcadf5_c6e9_dd5c_0564_4eb77718f6b9["acceptOutboundMessage()"]
  a460731b_a672_688b_c650_84ce73e3828d -->|method| 07bcadf5_c6e9_dd5c_0564_4eb77718f6b9
  b7cd8472_38f1_8856_97bd_9b6da13ddeb0["rsv()"]
  a460731b_a672_688b_c650_84ce73e3828d -->|method| b7cd8472_38f1_8856_97bd_9b6da13ddeb0
  30058fb3_b99e_d084_f380_1cb08cc48242["removeFrameTail()"]
  a460731b_a672_688b_c650_84ce73e3828d -->|method| 30058fb3_b99e_d084_f380_1cb08cc48242

Relationship Graph

Source Code

codec-http/src/main/java/io/netty/handler/codec/http/websocketx/extensions/compression/PerFrameDeflateEncoder.java lines 28–81

class PerFrameDeflateEncoder extends DeflateEncoder {

    /**
     * Constructor
     *
     * @param compressionLevel compression level of the compressor.
     * @param windowSize       maximum size of the window compressor buffer.
     * @param noContext        true to disable context takeover.
     */
    PerFrameDeflateEncoder(int compressionLevel, int windowSize, boolean noContext) {
        super(compressionLevel, windowSize, noContext, WebSocketExtensionFilter.NEVER_SKIP);
    }

    /**
     * Constructor
     *
     * @param compressionLevel compression level of the compressor.
     * @param windowSize       maximum size of the window compressor buffer.
     * @param noContext        true to disable context takeover.
     * @param extensionEncoderFilter extension encoder filter for per frame deflate encoder.
     */
    PerFrameDeflateEncoder(int compressionLevel, int windowSize, boolean noContext,
                           WebSocketExtensionFilter extensionEncoderFilter) {
        super(compressionLevel, windowSize, noContext, extensionEncoderFilter);
    }

    @Override
    public boolean acceptOutboundMessage(Object msg) throws Exception {
        if (!super.acceptOutboundMessage(msg)) {
            return false;
        }

        WebSocketFrame wsFrame = (WebSocketFrame) msg;
        if (extensionEncoderFilter().mustSkip(wsFrame)) {
            return false;
        }

        return (msg instanceof TextWebSocketFrame || msg instanceof BinaryWebSocketFrame ||
                msg instanceof ContinuationWebSocketFrame) &&
               wsFrame.content().readableBytes() > 0 &&
               (wsFrame.rsv() & WebSocketExtension.RSV1) == 0;
    }

    @Override
    protected int rsv(WebSocketFrame msg) {
        return msg.rsv() | WebSocketExtension.RSV1;
    }

    @Override
    protected boolean removeFrameTail(WebSocketFrame msg) {
        return true;
    }

}

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free