Home / Class/ DefaultServerSocketChannelConfig Class — netty Architecture

DefaultServerSocketChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  cf71ff77_46f7_8b29_5c38_eef591f5058f["DefaultServerSocketChannelConfig"]
  45d7010e_2ea8_919c_26fc_d603c13ac3d4["DefaultServerSocketChannelConfig.java"]
  cf71ff77_46f7_8b29_5c38_eef591f5058f -->|defined in| 45d7010e_2ea8_919c_26fc_d603c13ac3d4
  5db47e79_9eab_80a8_08dd_1181ef800f09["DefaultServerSocketChannelConfig()"]
  cf71ff77_46f7_8b29_5c38_eef591f5058f -->|method| 5db47e79_9eab_80a8_08dd_1181ef800f09
  06433166_256d_28b5_b5d2_87422aa7b5f4["getOptions()"]
  cf71ff77_46f7_8b29_5c38_eef591f5058f -->|method| 06433166_256d_28b5_b5d2_87422aa7b5f4
  5415bc8b_de88_c15a_18d5_72ca3210ed49["T()"]
  cf71ff77_46f7_8b29_5c38_eef591f5058f -->|method| 5415bc8b_de88_c15a_18d5_72ca3210ed49
  d0376416_7232_eb09_92fd_f1afd3fa365c["setOption()"]
  cf71ff77_46f7_8b29_5c38_eef591f5058f -->|method| d0376416_7232_eb09_92fd_f1afd3fa365c
  4b6b890b_8013_514e_5ff8_32b64266e6f3["isReuseAddress()"]
  cf71ff77_46f7_8b29_5c38_eef591f5058f -->|method| 4b6b890b_8013_514e_5ff8_32b64266e6f3
  129b16a7_4d7e_aa4a_bdec_27c6fd879a53["ServerSocketChannelConfig()"]
  cf71ff77_46f7_8b29_5c38_eef591f5058f -->|method| 129b16a7_4d7e_aa4a_bdec_27c6fd879a53
  eae12f5c_85dc_e125_d9aa_07efefa401c1["getReceiveBufferSize()"]
  cf71ff77_46f7_8b29_5c38_eef591f5058f -->|method| eae12f5c_85dc_e125_d9aa_07efefa401c1
  49603c4d_56bb_a3be_1274_83310c5c9f81["getBacklog()"]
  cf71ff77_46f7_8b29_5c38_eef591f5058f -->|method| 49603c4d_56bb_a3be_1274_83310c5c9f81

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/socket/DefaultServerSocketChannelConfig.java lines 41–209

public class DefaultServerSocketChannelConfig extends DefaultChannelConfig
                                              implements ServerSocketChannelConfig {

    protected final ServerSocket javaSocket;
    private volatile int backlog = NetUtil.SOMAXCONN;

    /**
     * Creates a new instance.
     */
    public DefaultServerSocketChannelConfig(ServerSocketChannel channel, ServerSocket javaSocket) {
        super(channel, new ServerChannelRecvByteBufAllocator());
        this.javaSocket = ObjectUtil.checkNotNull(javaSocket, "javaSocket");
    }

    @Override
    public Map<ChannelOption<?>, Object> getOptions() {
        return getOptions(super.getOptions(), SO_RCVBUF, SO_REUSEADDR, SO_BACKLOG);
    }

    @SuppressWarnings("unchecked")
    @Override
    public <T> T getOption(ChannelOption<T> option) {
        if (option == SO_RCVBUF) {
            return (T) Integer.valueOf(getReceiveBufferSize());
        }
        if (option == SO_REUSEADDR) {
            return (T) Boolean.valueOf(isReuseAddress());
        }
        if (option == SO_BACKLOG) {
            return (T) Integer.valueOf(getBacklog());
        }

        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_REUSEADDR) {
            setReuseAddress((Boolean) value);
        } else if (option == SO_BACKLOG) {
            setBacklog((Integer) value);
        } else {
            return super.setOption(option, value);
        }

        return true;
    }

    @Override
    public boolean isReuseAddress() {
        try {
            return javaSocket.getReuseAddress();
        } catch (SocketException e) {
            throw new ChannelException(e);
        }
    }

    @Override
    public ServerSocketChannelConfig setReuseAddress(boolean reuseAddress) {
        try {
            javaSocket.setReuseAddress(reuseAddress);
        } catch (SocketException e) {
            throw new ChannelException(e);
        }
        return this;
    }

    @Override
    public int getReceiveBufferSize() {
        try {
            return javaSocket.getReceiveBufferSize();
        } catch (SocketException e) {
            throw new ChannelException(e);
        }
    }

    @Override

Frequently Asked Questions

What is the DefaultServerSocketChannelConfig class?
DefaultServerSocketChannelConfig is a class in the netty codebase, defined in transport/src/main/java/io/netty/channel/socket/DefaultServerSocketChannelConfig.java.
Where is DefaultServerSocketChannelConfig defined?
DefaultServerSocketChannelConfig is defined in transport/src/main/java/io/netty/channel/socket/DefaultServerSocketChannelConfig.java at line 41.

Analyze Your Own Codebase

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

Try Supermodel Free