Home / Class/ EpollServerSocketChannelConfig Class — netty Architecture

EpollServerSocketChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  484aaad5_f90c_7698_fb41_7aa2af3898ee["EpollServerSocketChannelConfig"]
  2cfb381c_c4bb_2735_0c89_5b9b2fd701ee["EpollServerSocketChannelConfig.java"]
  484aaad5_f90c_7698_fb41_7aa2af3898ee -->|defined in| 2cfb381c_c4bb_2735_0c89_5b9b2fd701ee
  cc165c8f_4f14_0a3a_4488_dfbe887dda71["EpollServerSocketChannelConfig()"]
  484aaad5_f90c_7698_fb41_7aa2af3898ee -->|method| cc165c8f_4f14_0a3a_4488_dfbe887dda71
  08086421_dcc8_b7f5_2579_033d1f0b8f0b["getOptions()"]
  484aaad5_f90c_7698_fb41_7aa2af3898ee -->|method| 08086421_dcc8_b7f5_2579_033d1f0b8f0b
  9c849cfc_eb94_b063_f845_4d0e92080ff2["T()"]
  484aaad5_f90c_7698_fb41_7aa2af3898ee -->|method| 9c849cfc_eb94_b063_f845_4d0e92080ff2
  440d397e_4117_685d_119b_8e41cdbe4d16["setOption()"]
  484aaad5_f90c_7698_fb41_7aa2af3898ee -->|method| 440d397e_4117_685d_119b_8e41cdbe4d16
  56c88782_040c_7f49_f476_bc942352bdb8["isReusePort()"]
  484aaad5_f90c_7698_fb41_7aa2af3898ee -->|method| 56c88782_040c_7f49_f476_bc942352bdb8
  24f039ac_ed86_630d_e3c1_7183ebd16b65["isFreeBind()"]
  484aaad5_f90c_7698_fb41_7aa2af3898ee -->|method| 24f039ac_ed86_630d_e3c1_7183ebd16b65
  2e6a9c3a_d258_caed_90d9_4ba28a362e2c["isIpTransparent()"]
  484aaad5_f90c_7698_fb41_7aa2af3898ee -->|method| 2e6a9c3a_d258_caed_90d9_4ba28a362e2c
  13eda72e_12fd_48eb_508c_361d6f5895bc["getTcpDeferAccept()"]
  484aaad5_f90c_7698_fb41_7aa2af3898ee -->|method| 13eda72e_12fd_48eb_508c_361d6f5895bc

Relationship Graph

Source Code

transport-classes-epoll/src/main/java/io/netty/channel/epoll/EpollServerSocketChannelConfig.java lines 30–288

public final class EpollServerSocketChannelConfig extends EpollServerChannelConfig
        implements ServerSocketChannelConfig {

    EpollServerSocketChannelConfig(EpollServerSocketChannel channel) {
        super(channel);

        // Use SO_REUSEADDR by default as java.nio does the same.
        //
        // See https://github.com/netty/netty/issues/2605
        setReuseAddress(true);
    }

    @Override
    public Map<ChannelOption<?>, Object> getOptions() {
        return getOptions(super.getOptions(), EpollChannelOption.SO_REUSEPORT, EpollChannelOption.IP_FREEBIND,
            EpollChannelOption.IP_TRANSPARENT, EpollChannelOption.TCP_DEFER_ACCEPT);
    }

    @SuppressWarnings("unchecked")
    @Override
    public <T> T getOption(ChannelOption<T> option) {
        if (option == EpollChannelOption.SO_REUSEPORT) {
            return (T) Boolean.valueOf(isReusePort());
        }
        if (option == EpollChannelOption.IP_FREEBIND) {
            return (T) Boolean.valueOf(isFreeBind());
        }
        if (option == EpollChannelOption.IP_TRANSPARENT) {
            return (T) Boolean.valueOf(isIpTransparent());
        }
        if (option == EpollChannelOption.TCP_DEFER_ACCEPT) {
            return (T) Integer.valueOf(getTcpDeferAccept());
        }
        return super.getOption(option);
    }

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

        if (option == EpollChannelOption.SO_REUSEPORT) {
            setReusePort((Boolean) value);
        } else if (option == EpollChannelOption.IP_FREEBIND) {
            setFreeBind((Boolean) value);
        } else if (option == EpollChannelOption.IP_TRANSPARENT) {
            setIpTransparent((Boolean) value);
        } else if (option == EpollChannelOption.TCP_MD5SIG) {
            @SuppressWarnings("unchecked")
            final Map<InetAddress, byte[]> m = (Map<InetAddress, byte[]>) value;
            setTcpMd5Sig(m);
        } else if (option == EpollChannelOption.TCP_DEFER_ACCEPT) {
            setTcpDeferAccept((Integer) value);
        } else {
            return super.setOption(option, value);
        }

        return true;
    }

    @Override
    public EpollServerSocketChannelConfig setReuseAddress(boolean reuseAddress) {
        super.setReuseAddress(reuseAddress);
        return this;
    }

    @Override
    public EpollServerSocketChannelConfig setReceiveBufferSize(int receiveBufferSize) {
        super.setReceiveBufferSize(receiveBufferSize);
        return this;
    }

    @Override
    public EpollServerSocketChannelConfig setPerformancePreferences(int connectionTime, int latency, int bandwidth) {
        return this;
    }

    @Override
    public EpollServerSocketChannelConfig setBacklog(int backlog) {
        super.setBacklog(backlog);
        return this;
    }

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free