Home / Class/ KQueueSocketChannelConfig Class — netty Architecture

KQueueSocketChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9["KQueueSocketChannelConfig"]
  3a192e48_91bb_b238_e270_7ed48e72cd8e["KQueueSocketChannelConfig.java"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|defined in| 3a192e48_91bb_b238_e270_7ed48e72cd8e
  d743937a_ad7e_f8d4_1b08_1e7d443a6e7f["KQueueSocketChannelConfig()"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|method| d743937a_ad7e_f8d4_1b08_1e7d443a6e7f
  ecba070f_afd4_bc0b_5db6_c4f3e129b22b["getOptions()"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|method| ecba070f_afd4_bc0b_5db6_c4f3e129b22b
  ed12471d_3aa2_d8e5_1b17_6a89e684d8c0["T()"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|method| ed12471d_3aa2_d8e5_1b17_6a89e684d8c0
  2ed2bd55_b3e4_ee84_2672_46aea7656d2d["setOption()"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|method| 2ed2bd55_b3e4_ee84_2672_46aea7656d2d
  4236a8a2_07a6_009e_b4e3_1d0d053fd1e5["getReceiveBufferSize()"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|method| 4236a8a2_07a6_009e_b4e3_1d0d053fd1e5
  291a5b0f_3145_7976_20af_8ecddf946a20["getSendBufferSize()"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|method| 291a5b0f_3145_7976_20af_8ecddf946a20
  4f503f1d_d954_dd2c_c7d2_a6253265f9bf["getSoLinger()"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|method| 4f503f1d_d954_dd2c_c7d2_a6253265f9bf
  693a696d_9631_8c64_a01a_c7c4d3fa920a["getTrafficClass()"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|method| 693a696d_9631_8c64_a01a_c7c4d3fa920a
  96b4e613_c54d_63aa_3b9a_f358da16cd01["isKeepAlive()"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|method| 96b4e613_c54d_63aa_3b9a_f358da16cd01
  dd058497_10df_64a1_0b9c_dead889d5a5c["isReuseAddress()"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|method| dd058497_10df_64a1_0b9c_dead889d5a5c
  53894fe2_ca87_4354_42a4_ac11bb3c70d5["isTcpNoDelay()"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|method| 53894fe2_ca87_4354_42a4_ac11bb3c70d5
  41bb3138_043b_27fb_7003_d57ed2b8e725["getSndLowAt()"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|method| 41bb3138_043b_27fb_7003_d57ed2b8e725
  74148e18_1ba1_a755_e2c7_76fdd133f65f["setSndLowAt()"]
  c726b6aa_58c3_c23e_8d70_411bf7bf32b9 -->|method| 74148e18_1ba1_a755_e2c7_76fdd133f65f

Relationship Graph

Source Code

transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/KQueueSocketChannelConfig.java lines 41–413

public final class KQueueSocketChannelConfig extends KQueueChannelConfig implements SocketChannelConfig {
    private volatile boolean allowHalfClosure;
    private volatile boolean tcpFastopen;

    KQueueSocketChannelConfig(KQueueSocketChannel channel) {
        super(channel);
        if (PlatformDependent.canEnableTcpNoDelayByDefault()) {
            setTcpNoDelay(true);
        }
        calculateMaxBytesPerGatheringWrite();
    }

    @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, SO_SNDLOWAT, TCP_NOPUSH);
    }

    @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 == SO_SNDLOWAT) {
            return (T) Integer.valueOf(getSndLowAt());
        }
        if (option == TCP_NOPUSH) {
            return (T) Boolean.valueOf(isTcpNoPush());
        }
        if (option == ChannelOption.TCP_FASTOPEN_CONNECT) {
            return (T) Boolean.valueOf(isTcpFastOpenConnect());
        }
        return super.getOption(option);
    }

    @Override
    public <T> boolean setOption(ChannelOption<T> option, T value) {
        validate(option, value);

        if (option == SO_RCVBUF) {
            setReceiveBufferSize((Integer) value);
        } else if (option == SO_SNDBUF) {
            setSendBufferSize((Integer) value);
        } else if (option == TCP_NODELAY) {
            setTcpNoDelay((Boolean) value);
        } else if (option == SO_KEEPALIVE) {
            setKeepAlive((Boolean) value);
        } else if (option == SO_REUSEADDR) {
            setReuseAddress((Boolean) value);
        } else if (option == SO_LINGER) {
            setSoLinger((Integer) value);
        } else if (option == IP_TOS) {
            setTrafficClass((Integer) value);
        } else if (option == ALLOW_HALF_CLOSURE) {
            setAllowHalfClosure((Boolean) value);
        } else if (option == SO_SNDLOWAT) {
            setSndLowAt((Integer) value);

Frequently Asked Questions

What is the KQueueSocketChannelConfig class?
KQueueSocketChannelConfig is a class in the netty codebase, defined in transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/KQueueSocketChannelConfig.java.
Where is KQueueSocketChannelConfig defined?
KQueueSocketChannelConfig is defined in transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/KQueueSocketChannelConfig.java at line 41.

Analyze Your Own Codebase

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

Try Supermodel Free