Home / Class/ EpollSocketChannelConfig Class — netty Architecture

EpollSocketChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e["EpollSocketChannelConfig"]
  a58d7edb_276b_2378_7def_65d19578f9b0["EpollSocketChannelConfig.java"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|defined in| a58d7edb_276b_2378_7def_65d19578f9b0
  74e2000f_050f_810e_fe57_4ff7c9bc1272["EpollSocketChannelConfig()"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|method| 74e2000f_050f_810e_fe57_4ff7c9bc1272
  0b500577_09cc_0fc1_624a_a9d57e49ebfd["getOptions()"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|method| 0b500577_09cc_0fc1_624a_a9d57e49ebfd
  a1a86671_ede5_9f04_7b5d_db02fecc60f3["T()"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|method| a1a86671_ede5_9f04_7b5d_db02fecc60f3
  1182c121_4602_1682_db0d_5d56217e031d["setOption()"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|method| 1182c121_4602_1682_db0d_5d56217e031d
  65412ce2_d2d4_6c5b_ed9f_0f8b6fa46449["getReceiveBufferSize()"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|method| 65412ce2_d2d4_6c5b_ed9f_0f8b6fa46449
  096648d1_cf6d_7d00_37e0_ec077b573eca["getSendBufferSize()"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|method| 096648d1_cf6d_7d00_37e0_ec077b573eca
  ce7d640e_4c52_caa6_ecd3_80e10b9f0f5a["getSoLinger()"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|method| ce7d640e_4c52_caa6_ecd3_80e10b9f0f5a
  6eff79ee_667d_6cc4_b9dd_ec84559da190["getTrafficClass()"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|method| 6eff79ee_667d_6cc4_b9dd_ec84559da190
  82dee784_a1fe_88cb_b2d6_fc2ecb6df1e7["isKeepAlive()"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|method| 82dee784_a1fe_88cb_b2d6_fc2ecb6df1e7
  d4577af0_dbae_01fd_4b72_b9d075d86f6b["isReuseAddress()"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|method| d4577af0_dbae_01fd_4b72_b9d075d86f6b
  3e7516a0_7354_c935_d4c2_5083f459320b["isTcpNoDelay()"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|method| 3e7516a0_7354_c935_d4c2_5083f459320b
  9e3a63c0_0a32_8386_6f36_ad44bf4c36ab["isTcpCork()"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|method| 9e3a63c0_0a32_8386_6f36_ad44bf4c36ab
  51750bbc_4ace_e02e_8218_6775dbaa0b9a["getSoBusyPoll()"]
  f9f9abc3_5d7e_54ea_b32a_5c493de53a1e -->|method| 51750bbc_4ace_e02e_8218_6775dbaa0b9a

Relationship Graph

Source Code

transport-classes-epoll/src/main/java/io/netty/channel/epoll/EpollSocketChannelConfig.java lines 40–697

public final class EpollSocketChannelConfig extends EpollChannelConfig implements SocketChannelConfig {
    private volatile boolean allowHalfClosure;
    private volatile boolean tcpFastopen;

    /**
     * Creates a new instance.
     */
    EpollSocketChannelConfig(EpollSocketChannel 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, EpollChannelOption.TCP_CORK, EpollChannelOption.TCP_NOTSENT_LOWAT,
                EpollChannelOption.TCP_KEEPCNT, EpollChannelOption.TCP_KEEPIDLE, EpollChannelOption.TCP_KEEPINTVL,
                EpollChannelOption.TCP_MD5SIG, EpollChannelOption.TCP_QUICKACK,
                EpollChannelOption.IP_BIND_ADDRESS_NO_PORT, EpollChannelOption.IP_TRANSPARENT,
                ChannelOption.TCP_FASTOPEN_CONNECT, EpollChannelOption.SO_BUSY_POLL);
    }

    @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 == EpollChannelOption.TCP_CORK) {
            return (T) Boolean.valueOf(isTcpCork());
        }
        if (option == EpollChannelOption.TCP_NOTSENT_LOWAT) {
            return (T) Long.valueOf(getTcpNotSentLowAt());
        }
        if (option == EpollChannelOption.TCP_KEEPIDLE) {
            return (T) Integer.valueOf(getTcpKeepIdle());
        }
        if (option == EpollChannelOption.TCP_KEEPINTVL) {
            return (T) Integer.valueOf(getTcpKeepIntvl());
        }
        if (option == EpollChannelOption.TCP_KEEPCNT) {
            return (T) Integer.valueOf(getTcpKeepCnt());
        }
        if (option == EpollChannelOption.TCP_USER_TIMEOUT) {
            return (T) Integer.valueOf(getTcpUserTimeout());
        }
        if (option == EpollChannelOption.TCP_QUICKACK) {
            return (T) Boolean.valueOf(isTcpQuickAck());
        }
        if (option == EpollChannelOption.IP_BIND_ADDRESS_NO_PORT) {
            return (T) Boolean.valueOf(isIpBindAddressNoPort());
        }
        if (option == EpollChannelOption.IP_TRANSPARENT) {
            return (T) Boolean.valueOf(isIpTransparent());

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free