Home / Class/ QuicCodecBuilder Class — netty Architecture

QuicCodecBuilder Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  9d27e66b_9ca6_33cb_346d_fac27c6dd310["QuicCodecBuilder"]
  4ba1d440_3771_dc1c_07e9_18b82ca22d84["QuicCodecBuilder.java"]
  9d27e66b_9ca6_33cb_346d_fac27c6dd310 -->|defined in| 4ba1d440_3771_dc1c_07e9_18b82ca22d84
  e8c1a492_bb51_04a9_5353_7d73be4739c7["QuicCodecBuilder()"]
  9d27e66b_9ca6_33cb_346d_fac27c6dd310 -->|method| e8c1a492_bb51_04a9_5353_7d73be4739c7
  b0bd63e6_735b_af4d_9095_3ab690d55423["B()"]
  9d27e66b_9ca6_33cb_346d_fac27c6dd310 -->|method| b0bd63e6_735b_af4d_9095_3ab690d55423
  1274f2ed_7559_faf1_e857_d7f961c33275["QuicheConfig()"]
  9d27e66b_9ca6_33cb_346d_fac27c6dd310 -->|method| 1274f2ed_7559_faf1_e857_d7f961c33275
  0f3c2c85_126b_1d39_0c1e_f5193ce37ef1["validate()"]
  9d27e66b_9ca6_33cb_346d_fac27c6dd310 -->|method| 0f3c2c85_126b_1d39_0c1e_f5193ce37ef1
  ccc99d5f_ecfe_c4ca_1c81_0f4cc0604444["ChannelHandler()"]
  9d27e66b_9ca6_33cb_346d_fac27c6dd310 -->|method| ccc99d5f_ecfe_c4ca_1c81_0f4cc0604444

Relationship Graph

Source Code

codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicCodecBuilder.java lines 34–541

public abstract class QuicCodecBuilder<B extends QuicCodecBuilder<B>> {
    private final boolean server;
    private Boolean grease;
    private Long maxIdleTimeout;
    private Long maxRecvUdpPayloadSize;
    private Long maxSendUdpPayloadSize;
    private Long initialMaxData;
    private Long initialMaxStreamDataBidiLocal;
    private Long initialMaxStreamDataBidiRemote;
    private Long initialMaxStreamDataUni;
    private Long initialMaxStreamsBidi;
    private Long initialMaxStreamsUni;
    private Long ackDelayExponent;
    private Long maxAckDelay;
    private Boolean disableActiveMigration;
    private Boolean enableHystart;
    private Boolean discoverPmtu;
    private QuicCongestionControlAlgorithm congestionControlAlgorithm;
    private Integer initialCongestionWindowPackets;
    private int localConnIdLength;
    private Function<QuicChannel, ? extends QuicSslEngine> sslEngineProvider;
    private FlushStrategy flushStrategy = FlushStrategy.DEFAULT;
    private Integer recvQueueLen;
    private Integer sendQueueLen;
    private Long activeConnectionIdLimit;
    private byte[] statelessResetToken;

    private Executor sslTaskExecutor;

    // package-private for testing only
    int version;

    QuicCodecBuilder(boolean server) {
        Quic.ensureAvailability();
        this.version = Quiche.QUICHE_PROTOCOL_VERSION;
        this.localConnIdLength = Quiche.QUICHE_MAX_CONN_ID_LEN;
        this.server = server;
    }

    QuicCodecBuilder(QuicCodecBuilder<B> builder) {
        Quic.ensureAvailability();
        this.server = builder.server;
        this.grease = builder.grease;
        this.maxIdleTimeout = builder.maxIdleTimeout;
        this.maxRecvUdpPayloadSize = builder.maxRecvUdpPayloadSize;
        this.maxSendUdpPayloadSize = builder.maxSendUdpPayloadSize;
        this.initialMaxData = builder.initialMaxData;
        this.initialMaxStreamDataBidiLocal = builder.initialMaxStreamDataBidiLocal;
        this.initialMaxStreamDataBidiRemote = builder.initialMaxStreamDataBidiRemote;
        this.initialMaxStreamDataUni = builder.initialMaxStreamDataUni;
        this.initialMaxStreamsBidi = builder.initialMaxStreamsBidi;
        this.initialMaxStreamsUni = builder.initialMaxStreamsUni;
        this.ackDelayExponent = builder.ackDelayExponent;
        this.maxAckDelay = builder.maxAckDelay;
        this.disableActiveMigration = builder.disableActiveMigration;
        this.enableHystart = builder.enableHystart;
        this.discoverPmtu = builder.discoverPmtu;
        this.congestionControlAlgorithm = builder.congestionControlAlgorithm;
        this.initialCongestionWindowPackets = builder.initialCongestionWindowPackets;
        this.localConnIdLength = builder.localConnIdLength;
        this.sslEngineProvider = builder.sslEngineProvider;
        this.flushStrategy = builder.flushStrategy;
        this.recvQueueLen = builder.recvQueueLen;
        this.sendQueueLen = builder.sendQueueLen;
        this.activeConnectionIdLimit = builder.activeConnectionIdLimit;
        this.statelessResetToken = builder.statelessResetToken;
        this.sslTaskExecutor = builder.sslTaskExecutor;
        this.version = builder.version;
    }

    /**
     * Returns itself.
     *
     * @return itself.
     */
    @SuppressWarnings("unchecked")
    protected final B self() {
        return (B) this;
    }

    /**

Frequently Asked Questions

What is the QuicCodecBuilder class?
QuicCodecBuilder is a class in the netty codebase, defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicCodecBuilder.java.
Where is QuicCodecBuilder defined?
QuicCodecBuilder is defined in codec-classes-quic/src/main/java/io/netty/handler/codec/quic/QuicCodecBuilder.java at line 34.

Analyze Your Own Codebase

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

Try Supermodel Free