Home / Class/ SpdyFrameCodec Class — netty Architecture

SpdyFrameCodec Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  393922cf_b1e2_6f1f_471a_694c3714fb63["SpdyFrameCodec"]
  017c9ce5_9521_431c_07d4_650af38db789["SpdyFrameCodec.java"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|defined in| 017c9ce5_9521_431c_07d4_650af38db789
  4550a164_e7a7_bff7_fb7c_ae90d735e611["SpdyFrameCodec()"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|method| 4550a164_e7a7_bff7_fb7c_ae90d735e611
  3aea08da_508b_17ac_3bd4_67c0f2b6906a["SpdyFrameDecoder()"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|method| 3aea08da_508b_17ac_3bd4_67c0f2b6906a
  0938a880_2088_350e_19e8_4bc4d7c4b0d0["SpdyFrameEncoder()"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|method| 0938a880_2088_350e_19e8_4bc4d7c4b0d0
  f00a5ea5_ba47_50f3_d4a0_c8d2b6a35aad["handlerAdded()"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|method| f00a5ea5_ba47_50f3_d4a0_c8d2b6a35aad
  9eff55d8_c73e_4f41_f772_127e087a031f["decode()"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|method| 9eff55d8_c73e_4f41_f772_127e087a031f
  50e81153_c874_c818_8161_49e46e3a5d02["channelReadComplete()"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|method| 50e81153_c874_c818_8161_49e46e3a5d02
  800b02f5_b467_1f8a_b352_f195a987bb68["bind()"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|method| 800b02f5_b467_1f8a_b352_f195a987bb68
  63a5a16b_2825_6168_1ceb_1780b8339744["connect()"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|method| 63a5a16b_2825_6168_1ceb_1780b8339744
  1913277a_065c_c8e5_1e10_0665fed4c0a7["disconnect()"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|method| 1913277a_065c_c8e5_1e10_0665fed4c0a7
  7eba5eed_b28a_bf5b_d3ff_50b0a27978e9["close()"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|method| 7eba5eed_b28a_bf5b_d3ff_50b0a27978e9
  9af65ed8_b972_0b6c_813f_bcd292fc7ec6["deregister()"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|method| 9af65ed8_b972_0b6c_813f_bcd292fc7ec6
  7f6f0382_9567_05f1_c267_9b06a83cb459["read()"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|method| 7f6f0382_9567_05f1_c267_9b06a83cb459
  c4ba8a74_5f7b_83be_7463_9e5859783b92["flush()"]
  393922cf_b1e2_6f1f_471a_694c3714fb63 -->|method| c4ba8a74_5f7b_83be_7463_9e5859783b92

Relationship Graph

Source Code

codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyFrameCodec.java lines 32–486

public class SpdyFrameCodec extends ByteToMessageDecoder
        implements SpdyFrameDecoderDelegate, ChannelOutboundHandler {

    protected static final SpdyProtocolException INVALID_FRAME =
        new SpdyProtocolException("Received invalid frame");

    protected final SpdyFrameDecoder spdyFrameDecoder;
    protected final SpdyFrameEncoder spdyFrameEncoder;
    private final SpdyHeaderBlockDecoder spdyHeaderBlockDecoder;
    private final SpdyHeaderBlockEncoder spdyHeaderBlockEncoder;

    private SpdyHeadersFrame spdyHeadersFrame;
    private SpdySettingsFrame spdySettingsFrame;

    private ChannelHandlerContext ctx;
    private boolean read;
    private final boolean validateHeaders;
    private final boolean supportsUnknownFrames;

    /**
     * Creates a new instance with the specified {@code version},
     * {@code validateHeaders (true)}, and
     * the default decoder and encoder options
     * ({@code maxChunkSize (8192)}, {@code maxHeaderSize (16384)},
     * {@code compressionLevel (6)}, {@code windowBits (15)},
     * and {@code memLevel (8)}).
     */
    public SpdyFrameCodec(SpdyVersion version) {
        this(version, true);
    }

    /**
     * Creates a new instance with the specified {@code version},
     * {@code validateHeaders}, and
     * the default decoder and encoder options
     * ({@code maxChunkSize (8192)}, {@code maxHeaderSize (16384)},
     * {@code compressionLevel (6)}, {@code windowBits (15)},
     * and {@code memLevel (8)}).
     */
    public SpdyFrameCodec(SpdyVersion version, boolean validateHeaders) {
        this(version, 8192, 16384, 6, 15, 8, validateHeaders);
    }

    /**
     * Creates a new instance with the specified {@code version}, {@code validateHeaders (true)},
     * decoder and encoder options.
     */
    public SpdyFrameCodec(
            SpdyVersion version, int maxChunkSize, int maxHeaderSize,
            int compressionLevel, int windowBits, int memLevel) {
        this(version, maxChunkSize, maxHeaderSize, compressionLevel, windowBits, memLevel, true);
    }

    /**
     * Creates a new instance with the specified {@code version}, {@code validateHeaders},
     * decoder and encoder options.
     */
    public SpdyFrameCodec(
            SpdyVersion version, int maxChunkSize, int maxHeaderSize,
            int compressionLevel, int windowBits, int memLevel, boolean validateHeaders) {
        this(version, maxChunkSize,
                SpdyHeaderBlockDecoder.newInstance(version, maxHeaderSize),
                SpdyHeaderBlockEncoder.newInstance(version, compressionLevel, windowBits, memLevel),
                validateHeaders, false);
    }

    /**
     * Creates a new instance with the specified {@code version}, {@code validateHeaders},
     * decoder and encoder options.
     */
    public SpdyFrameCodec(
            SpdyVersion version, int maxChunkSize, int maxHeaderSize,
            int compressionLevel, int windowBits, int memLevel, boolean validateHeaders,
            boolean supportsUnknownFrames) {
        this(version, maxChunkSize,
                SpdyHeaderBlockDecoder.newInstance(version, maxHeaderSize),
                SpdyHeaderBlockEncoder.newInstance(version, compressionLevel, windowBits, memLevel),
                validateHeaders, supportsUnknownFrames);
    }

    protected SpdyFrameCodec(SpdyVersion version, int maxChunkSize,

Frequently Asked Questions

What is the SpdyFrameCodec class?
SpdyFrameCodec is a class in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyFrameCodec.java.
Where is SpdyFrameCodec defined?
SpdyFrameCodec is defined in codec-http/src/main/java/io/netty/handler/codec/spdy/SpdyFrameCodec.java at line 32.

Analyze Your Own Codebase

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

Try Supermodel Free