Home / Class/ NioDomainServerSocketChannelConfig Class — netty Architecture

NioDomainServerSocketChannelConfig Class — netty Architecture

Architecture documentation for the NioDomainServerSocketChannelConfig class in NioServerDomainSocketChannel.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  cbf94749_a954_a555_3394_1a2eb240e292["NioDomainServerSocketChannelConfig"]
  2caefa2b_166d_5c45_360d_2a71cc75c69a["NioServerDomainSocketChannel.java"]
  cbf94749_a954_a555_3394_1a2eb240e292 -->|defined in| 2caefa2b_166d_5c45_360d_2a71cc75c69a
  0e3821a0_354d_7c88_7554_fe2338ec0e8f["NioDomainServerSocketChannelConfig()"]
  cbf94749_a954_a555_3394_1a2eb240e292 -->|method| 0e3821a0_354d_7c88_7554_fe2338ec0e8f
  63f883cd_dba5_5e9e_dfef_815ec80c3c14["autoReadCleared()"]
  cbf94749_a954_a555_3394_1a2eb240e292 -->|method| 63f883cd_dba5_5e9e_dfef_815ec80c3c14
  e5e12348_debd_5f4d_5b89_8950852e6e93["getOptions()"]
  cbf94749_a954_a555_3394_1a2eb240e292 -->|method| e5e12348_debd_5f4d_5b89_8950852e6e93
  5805ca8f_fe47_a1e7_82e7_69f8ee325e9e["T()"]
  cbf94749_a954_a555_3394_1a2eb240e292 -->|method| 5805ca8f_fe47_a1e7_82e7_69f8ee325e9e
  316fc639_ed5d_5e71_6106_a38140f2a475["setOption()"]
  cbf94749_a954_a555_3394_1a2eb240e292 -->|method| 316fc639_ed5d_5e71_6106_a38140f2a475
  5781cdbe_3dc8_11b4_de49_6b0a980368d1["getBacklog()"]
  cbf94749_a954_a555_3394_1a2eb240e292 -->|method| 5781cdbe_3dc8_11b4_de49_6b0a980368d1
  b8fdeaff_06c7_4f9f_5c43_8c4a27596625["ServerSocketChannel()"]
  cbf94749_a954_a555_3394_1a2eb240e292 -->|method| b8fdeaff_06c7_4f9f_5c43_8c4a27596625

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/socket/nio/NioServerDomainSocketChannel.java lines 202–265

    private final class NioDomainServerSocketChannelConfig extends DefaultChannelConfig {

        private volatile int backlog = NetUtil.SOMAXCONN;

        private NioDomainServerSocketChannelConfig(NioServerDomainSocketChannel channel) {
            super(channel, new ServerChannelRecvByteBufAllocator());
        }

        @Override
        protected void autoReadCleared() {
            clearReadPending();
        }

        @Override
        public Map<ChannelOption<?>, Object> getOptions() {
            List<ChannelOption<?>> options = new ArrayList<ChannelOption<?>>();
            options.add(SO_BACKLOG);
            for (ChannelOption<?> opt : NioChannelOption.getOptions(jdkChannel())) {
                options.add(opt);
            }
            return getOptions(super.getOptions(), options.toArray(new ChannelOption[0]));
        }

        @SuppressWarnings("unchecked")
        @Override
        public <T> T getOption(ChannelOption<T> option) {
            if (option == SO_BACKLOG) {
                return (T) Integer.valueOf(getBacklog());
            }
            if (option instanceof NioChannelOption) {
                return NioChannelOption.getOption(jdkChannel(), (NioChannelOption<T>) option);
            }

            return super.getOption(option);
        }

        @Override
        public <T> boolean setOption(ChannelOption<T> option, T value) {
            if (option == SO_BACKLOG) {
                validate(option, value);
                setBacklog((Integer) value);
            } else if (option instanceof NioChannelOption) {
                return NioChannelOption.setOption(jdkChannel(), (NioChannelOption<T>) option, value);
            } else {
                return super.setOption(option, value);
            }

            return true;
        }

        private int getBacklog() {
            return backlog;
        }

        private NioDomainServerSocketChannelConfig setBacklog(int backlog) {
            checkPositiveOrZero(backlog, "backlog");
            this.backlog = backlog;
            return this;
        }

        private ServerSocketChannel jdkChannel() {
            return ((NioServerDomainSocketChannel) channel).javaChannel();
        }
    }

Frequently Asked Questions

What is the NioDomainServerSocketChannelConfig class?
NioDomainServerSocketChannelConfig is a class in the netty codebase, defined in transport/src/main/java/io/netty/channel/socket/nio/NioServerDomainSocketChannel.java.
Where is NioDomainServerSocketChannelConfig defined?
NioDomainServerSocketChannelConfig is defined in transport/src/main/java/io/netty/channel/socket/nio/NioServerDomainSocketChannel.java at line 202.

Analyze Your Own Codebase

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

Try Supermodel Free