Home / Class/ PerFrameDeflateDecoder Class — netty Architecture

PerFrameDeflateDecoder Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  c73c9f49_9eb6_0e34_541b_4e223878873f["PerFrameDeflateDecoder"]
  02b6fdc8_58e3_5d47_39e5_4b1ee7819b1b["PerFrameDeflateDecoder.java"]
  c73c9f49_9eb6_0e34_541b_4e223878873f -->|defined in| 02b6fdc8_58e3_5d47_39e5_4b1ee7819b1b
  9ec96f71_7d9d_6ac6_c927_b2ef9fd38ce3["PerFrameDeflateDecoder()"]
  c73c9f49_9eb6_0e34_541b_4e223878873f -->|method| 9ec96f71_7d9d_6ac6_c927_b2ef9fd38ce3
  3d7d5942_fcf4_049f_f0df_e736fb5518d0["acceptInboundMessage()"]
  c73c9f49_9eb6_0e34_541b_4e223878873f -->|method| 3d7d5942_fcf4_049f_f0df_e736fb5518d0
  7cfd7800_5239_a2df_8524_a01e57223002["newRsv()"]
  c73c9f49_9eb6_0e34_541b_4e223878873f -->|method| 7cfd7800_5239_a2df_8524_a01e57223002
  768ebca3_e2f5_8ed5_3620_580d9951c9df["appendFrameTail()"]
  c73c9f49_9eb6_0e34_541b_4e223878873f -->|method| 768ebca3_e2f5_8ed5_3620_580d9951c9df

Relationship Graph

Source Code

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

class PerFrameDeflateDecoder extends DeflateDecoder {

    /**
     * Constructor
     *
     * @param noContext true to disable context takeover.
     * @param maxAllocation
     *          maximum size of the decompression buffer. Must be >= 0. If zero, maximum size is not limited.
     */
    PerFrameDeflateDecoder(boolean noContext, int maxAllocation) {
        super(noContext, WebSocketExtensionFilter.NEVER_SKIP, maxAllocation);
    }

    /**
     * Constructor
     *
     * @param noContext true to disable context takeover.
     * @param extensionDecoderFilter extension decoder filter for per frame deflate decoder.
     * @param maxAllocation
     *            maximum size of the decompression buffer. Must be >= 0. If zero, maximum size is not limited.
     */
    PerFrameDeflateDecoder(boolean noContext, WebSocketExtensionFilter extensionDecoderFilter, int maxAllocation) {
        super(noContext, extensionDecoderFilter, maxAllocation);
    }

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

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

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

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

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

}

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free