Home / Class/ IoUringSocketChannelConfig Class — netty Architecture

IoUringSocketChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  484d4b16_5cd0_ceda_ec98_1e750f432535["IoUringSocketChannelConfig"]
  2d72fa2c_8b24_2686_0ff1_888e8933054b["IoUringSocketChannelConfig.java"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|defined in| 2d72fa2c_8b24_2686_0ff1_888e8933054b
  669ba3b2_4d7a_3a5d_28c8_fc791874df28["IoUringSocketChannelConfig()"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|method| 669ba3b2_4d7a_3a5d_28c8_fc791874df28
  d74585f0_a057_6d43_444b_2b5bf18a2b5f["getOptions()"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|method| d74585f0_a057_6d43_444b_2b5bf18a2b5f
  d284361e_4f07_d2cd_020c_7903d399bae6["T()"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|method| d284361e_4f07_d2cd_020c_7903d399bae6
  afefb505_dde4_63e5_081b_6c4d1b3c0cb7["setOption()"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|method| afefb505_dde4_63e5_081b_6c4d1b3c0cb7
  6a0cc6d7_9b72_41ad_b744_f8d5ac75e989["getSendBufferSize()"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|method| 6a0cc6d7_9b72_41ad_b744_f8d5ac75e989
  88805a81_025e_a57d_ff65_b026b343da9c["getSoLinger()"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|method| 88805a81_025e_a57d_ff65_b026b343da9c
  2fea1f25_4929_fa68_6b4c_90f874722a0a["getTrafficClass()"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|method| 2fea1f25_4929_fa68_6b4c_90f874722a0a
  3067a199_839f_86c1_e70a_a2528dc54f8d["isKeepAlive()"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|method| 3067a199_839f_86c1_e70a_a2528dc54f8d
  910c9501_6d97_1e1b_c5c0_965e17a2abba["isReuseAddress()"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|method| 910c9501_6d97_1e1b_c5c0_965e17a2abba
  d178e852_8df3_7a85_c65b_8d0678ae8813["isTcpNoDelay()"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|method| d178e852_8df3_7a85_c65b_8d0678ae8813
  4db00806_fa61_e6a8_0e47_b4833b0659b4["isTcpCork()"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|method| 4db00806_fa61_e6a8_0e47_b4833b0659b4
  7852d9eb_a820_fbcd_9fbf_f4da23f0cd8b["getSoBusyPoll()"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|method| 7852d9eb_a820_fbcd_9fbf_f4da23f0cd8b
  1bcd3566_6806_7e29_c375_8c91ff84906a["getTcpNotSentLowAt()"]
  484d4b16_5cd0_ceda_ec98_1e750f432535 -->|method| 1bcd3566_6806_7e29_c375_8c91ff84906a

Relationship Graph

Source Code

transport-classes-io_uring/src/main/java/io/netty/channel/uring/IoUringSocketChannelConfig.java lines 34–656

final class IoUringSocketChannelConfig extends IoUringStreamChannelConfig implements SocketChannelConfig {
    private volatile boolean allowHalfClosure;
    private volatile boolean tcpFastopen;

    static final int DISABLE_WRITE_ZERO_COPY = -1;
    private volatile int writeZeroCopyThreshold = DISABLE_WRITE_ZERO_COPY;

    IoUringSocketChannelConfig(AbstractIoUringChannel channel) {
        super(channel);
        if (PlatformDependent.canEnableTcpNoDelayByDefault()) {
            setTcpNoDelay(true);
        }
    }

    @Override
    public Map<ChannelOption<?>, Object> getOptions() {
        return getOptions(
                super.getOptions(),
                SO_RCVBUF, SO_SNDBUF, TCP_NODELAY, SO_KEEPALIVE, SO_REUSEADDR, SO_LINGER, IP_TOS,
                ALLOW_HALF_CLOSURE, IoUringChannelOption.TCP_CORK, IoUringChannelOption.TCP_NOTSENT_LOWAT,
                IoUringChannelOption.TCP_KEEPCNT, IoUringChannelOption.TCP_KEEPIDLE, IoUringChannelOption.TCP_KEEPINTVL,
                IoUringChannelOption.TCP_QUICKACK, IoUringChannelOption.IP_TRANSPARENT,
                ChannelOption.TCP_FASTOPEN_CONNECT, IoUringChannelOption.IO_URING_WRITE_ZERO_COPY_THRESHOLD);
    }

    @SuppressWarnings("unchecked")
    @Override
    public <T> T getOption(ChannelOption<T> option) {
        if (option == SO_RCVBUF) {
            return (T) Integer.valueOf(getReceiveBufferSize());
        }
        if (option == SO_SNDBUF) {
            return (T) Integer.valueOf(getSendBufferSize());
        }
        if (option == TCP_NODELAY) {
            return (T) Boolean.valueOf(isTcpNoDelay());
        }
        if (option == SO_KEEPALIVE) {
            return (T) Boolean.valueOf(isKeepAlive());
        }
        if (option == SO_REUSEADDR) {
            return (T) Boolean.valueOf(isReuseAddress());
        }
        if (option == SO_LINGER) {
            return (T) Integer.valueOf(getSoLinger());
        }
        if (option == IP_TOS) {
            return (T) Integer.valueOf(getTrafficClass());
        }
        if (option == ALLOW_HALF_CLOSURE) {
            return (T) Boolean.valueOf(isAllowHalfClosure());
        }
        if (option == IoUringChannelOption.TCP_CORK) {
            return (T) Boolean.valueOf(isTcpCork());
        }
        if (option == IoUringChannelOption.TCP_NOTSENT_LOWAT) {
            return (T) Long.valueOf(getTcpNotSentLowAt());
        }
        if (option == IoUringChannelOption.TCP_KEEPIDLE) {
            return (T) Integer.valueOf(getTcpKeepIdle());
        }
        if (option == IoUringChannelOption.TCP_KEEPINTVL) {
            return (T) Integer.valueOf(getTcpKeepIntvl());
        }
        if (option == IoUringChannelOption.TCP_KEEPCNT) {
            return (T) Integer.valueOf(getTcpKeepCnt());
        }
        if (option == IoUringChannelOption.TCP_USER_TIMEOUT) {
            return (T) Integer.valueOf(getTcpUserTimeout());
        }
        if (option == IoUringChannelOption.TCP_QUICKACK) {
            return (T) Boolean.valueOf(isTcpQuickAck());
        }
        if (option == IoUringChannelOption.IP_TRANSPARENT) {
            return (T) Boolean.valueOf(isIpTransparent());
        }
        if (option == ChannelOption.TCP_FASTOPEN_CONNECT) {
            return (T) Boolean.valueOf(isTcpFastOpenConnect());
        }
        if (option == IoUringChannelOption.IO_URING_WRITE_ZERO_COPY_THRESHOLD) {
            return (T) Integer.valueOf(getWriteZeroCopyThreshold());

Frequently Asked Questions

What is the IoUringSocketChannelConfig class?
IoUringSocketChannelConfig is a class in the netty codebase, defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/IoUringSocketChannelConfig.java.
Where is IoUringSocketChannelConfig defined?
IoUringSocketChannelConfig is defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/IoUringSocketChannelConfig.java at line 34.

Analyze Your Own Codebase

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

Try Supermodel Free