Home / Class/ IoUringServerSocketChannelConfig Class — netty Architecture

IoUringServerSocketChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  0002af80_d567_2dae_91b9_d7ecc7afe1eb["IoUringServerSocketChannelConfig"]
  a49eaa2d_8d5a_bfd1_2bfa_7dafed0a4e2c["IoUringServerSocketChannelConfig.java"]
  0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|defined in| a49eaa2d_8d5a_bfd1_2bfa_7dafed0a4e2c
  0afc66eb_5ec0_c91d_86ce_d98b65d82e47["IoUringServerSocketChannelConfig()"]
  0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 0afc66eb_5ec0_c91d_86ce_d98b65d82e47
  81fbf8d0_5dd2_5827_5a6c_16b310880e6a["getOptions()"]
  0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 81fbf8d0_5dd2_5827_5a6c_16b310880e6a
  a3ab4ec2_4522_71be_bd42_c8ef1b5e3b39["T()"]
  0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| a3ab4ec2_4522_71be_bd42_c8ef1b5e3b39
  bd8cf641_1381_2813_2875_e68c7a144e7c["setOption()"]
  0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| bd8cf641_1381_2813_2875_e68c7a144e7c
  bd2a0016_3a7e_d769_7937_7e395a44d1f8["isReuseAddress()"]
  0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| bd2a0016_3a7e_d769_7937_7e395a44d1f8
  0cceca3d_337f_de6a_3dc1_1ec917c4bbe5["getReceiveBufferSize()"]
  0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 0cceca3d_337f_de6a_3dc1_1ec917c4bbe5
  2804eea3_7023_2b47_f2a1_d87013b03390["getBacklog()"]
  0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 2804eea3_7023_2b47_f2a1_d87013b03390
  235c564c_ea2e_aac0_52f7_ebd8dd154a2d["isReusePort()"]
  0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 235c564c_ea2e_aac0_52f7_ebd8dd154a2d
  613b6590_0791_93ec_1559_b860f5887264["isFreeBind()"]
  0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 613b6590_0791_93ec_1559_b860f5887264
  36bd286d_68b0_43a3_3966_0c904651de56["isIpTransparent()"]
  0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 36bd286d_68b0_43a3_3966_0c904651de56
  b2a00c30_745c_3211_d6b9_8703881f2b27["getTcpDeferAccept()"]
  0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| b2a00c30_745c_3211_d6b9_8703881f2b27
  3c9d068d_1a82_bc72_804a_9530ce0279f6["getTcpFastopen()"]
  0002af80_d567_2dae_91b9_d7ecc7afe1eb -->|method| 3c9d068d_1a82_bc72_804a_9530ce0279f6

Relationship Graph

Source Code

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

final class IoUringServerSocketChannelConfig extends IoUringChannelConfig implements ServerSocketChannelConfig {
    private volatile int backlog = NetUtil.SOMAXCONN;
    private volatile int pendingFastOpenRequestsThreshold;

    IoUringServerSocketChannelConfig(AbstractIoUringServerChannel channel) {
        super(channel, new ServerChannelRecvByteBufAllocator());
        setReuseAddress(true);
    }

    @Override
    public Map<ChannelOption<?>, Object> getOptions() {
        return getOptions(super.getOptions(), ChannelOption.SO_RCVBUF, ChannelOption.SO_REUSEADDR,
                ChannelOption.SO_BACKLOG, IoUringChannelOption.SO_REUSEPORT, IoUringChannelOption.IP_FREEBIND,
                IoUringChannelOption.IP_TRANSPARENT, IoUringChannelOption.TCP_DEFER_ACCEPT, ChannelOption.TCP_FASTOPEN);
    }

    @SuppressWarnings("unchecked")
    @Override
    public <T> T getOption(ChannelOption<T> option) {
        if (option == ChannelOption.SO_RCVBUF) {
            return (T) Integer.valueOf(getReceiveBufferSize());
        }
        if (option == ChannelOption.SO_REUSEADDR) {
            return (T) Boolean.valueOf(isReuseAddress());
        }
        if (option == ChannelOption.SO_BACKLOG) {
            return (T) Integer.valueOf(getBacklog());
        }
        if (option == IoUringChannelOption.SO_REUSEPORT) {
            return (T) Boolean.valueOf(isReusePort());
        }
        if (option == IoUringChannelOption.IP_FREEBIND) {
            return (T) Boolean.valueOf(isFreeBind());
        }
        if (option == IoUringChannelOption.IP_TRANSPARENT) {
            return (T) Boolean.valueOf(isIpTransparent());
        }
        if (option == IoUringChannelOption.TCP_DEFER_ACCEPT) {
            return (T) Integer.valueOf(getTcpDeferAccept());
        }
        if (option == TCP_FASTOPEN) {
            return (T) Integer.valueOf(getTcpFastopen());
        }
        return super.getOption(option);
    }

    @Override
    public <T> boolean setOption(ChannelOption<T> option, T value) {
        validate(option, value);
        if (option == ChannelOption.SO_RCVBUF) {
            setReceiveBufferSize((Integer) value);
        } else if (option == ChannelOption.SO_REUSEADDR) {
            setReuseAddress((Boolean) value);
        } else if (option == ChannelOption.SO_BACKLOG) {
            setBacklog((Integer) value);
        } else if (option == IoUringChannelOption.SO_REUSEPORT) {
            setReusePort((Boolean) value);
        } else if (option == IoUringChannelOption.IP_FREEBIND) {
            setFreeBind((Boolean) value);
        } else if (option == IoUringChannelOption.IP_TRANSPARENT) {
            setIpTransparent((Boolean) value);
        } else if (option == IoUringChannelOption.TCP_DEFER_ACCEPT) {
            setTcpDeferAccept((Integer) value);
        } else if (option == TCP_FASTOPEN) {
            setTcpFastopen((Integer) value);
        } else {
            return super.setOption(option, value);
        }

        return true;
    }

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

    @Override
    public boolean isReuseAddress() {
        try {
            return ((AbstractIoUringChannel) channel).socket.isReuseAddress();

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free