Home / Class/ KQueueServerSocketChannelConfig Class — netty Architecture

KQueueServerSocketChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  3be4a70b_19bc_7b76_5172_ddd5205f06e2["KQueueServerSocketChannelConfig"]
  ef5c86b9_99c7_b89e_043b_4239dda0d143["KQueueServerSocketChannelConfig.java"]
  3be4a70b_19bc_7b76_5172_ddd5205f06e2 -->|defined in| ef5c86b9_99c7_b89e_043b_4239dda0d143
  7178db12_b730_1ab0_21ae_4219b768018d["KQueueServerSocketChannelConfig()"]
  3be4a70b_19bc_7b76_5172_ddd5205f06e2 -->|method| 7178db12_b730_1ab0_21ae_4219b768018d
  3a902c5f_6f48_1296_d927_b8b6edf8a3f5["getOptions()"]
  3be4a70b_19bc_7b76_5172_ddd5205f06e2 -->|method| 3a902c5f_6f48_1296_d927_b8b6edf8a3f5
  5f4f7be3_4c77_280e_bc3e_1ec01a4c74c5["T()"]
  3be4a70b_19bc_7b76_5172_ddd5205f06e2 -->|method| 5f4f7be3_4c77_280e_bc3e_1ec01a4c74c5
  3d15f1e1_aa44_0a2e_0b2f_1218d7993ff8["setOption()"]
  3be4a70b_19bc_7b76_5172_ddd5205f06e2 -->|method| 3d15f1e1_aa44_0a2e_0b2f_1218d7993ff8
  fd8d85d8_f017_6ec5_6bcd_5d98223110fc["isReusePort()"]
  3be4a70b_19bc_7b76_5172_ddd5205f06e2 -->|method| fd8d85d8_f017_6ec5_6bcd_5d98223110fc
  55dbb0a7_693f_a8a0_814c_87c07023892c["AcceptFilter()"]
  3be4a70b_19bc_7b76_5172_ddd5205f06e2 -->|method| 55dbb0a7_693f_a8a0_814c_87c07023892c

Relationship Graph

Source Code

transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/KQueueServerSocketChannelConfig.java lines 31–204

public class KQueueServerSocketChannelConfig extends KQueueServerChannelConfig {
    KQueueServerSocketChannelConfig(KQueueServerSocketChannel 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(), SO_REUSEPORT, SO_ACCEPTFILTER);
    }

    @SuppressWarnings("unchecked")
    @Override
    public <T> T getOption(ChannelOption<T> option) {
        if (option == SO_REUSEPORT) {
            return (T) Boolean.valueOf(isReusePort());
        }
        if (option == SO_ACCEPTFILTER) {
            return (T) getAcceptFilter();
        }
        return super.getOption(option);
    }

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

        if (option == SO_REUSEPORT) {
            setReusePort((Boolean) value);
        } else if (option == SO_ACCEPTFILTER) {
            setAcceptFilter((AcceptFilter) value);
        } else {
            return super.setOption(option, value);
        }

        return true;
    }

    public KQueueServerSocketChannelConfig setReusePort(boolean reusePort) {
        try {
            ((KQueueServerSocketChannel) channel).socket.setReusePort(reusePort);
            return this;
        } catch (IOException e) {
            throw new ChannelException(e);
        }
    }

    public boolean isReusePort() {
        try {
            return ((KQueueServerSocketChannel) channel).socket.isReusePort();
        } catch (IOException e) {
            throw new ChannelException(e);
        }
    }

    public KQueueServerSocketChannelConfig setAcceptFilter(AcceptFilter acceptFilter) {
        try {
            ((KQueueServerSocketChannel) channel).socket.setAcceptFilter(acceptFilter);
            return this;
        } catch (IOException e) {
            throw new ChannelException(e);
        }
    }

    public AcceptFilter getAcceptFilter() {
        try {
            return ((KQueueServerSocketChannel) channel).socket.getAcceptFilter();
        } catch (IOException e) {
            throw new ChannelException(e);
        }
    }

    @Override
    public KQueueServerSocketChannelConfig setRcvAllocTransportProvidesGuess(boolean transportProvidesGuess) {
        super.setRcvAllocTransportProvidesGuess(transportProvidesGuess);
        return this;
    }

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free