Home / Class/ DefaultSctpChannelConfig Class — netty Architecture

DefaultSctpChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  32a1241f_47d8_4f87_e62f_748203294904["DefaultSctpChannelConfig"]
  72cd88a8_45ce_7d57_8779_93f3fa237ceb["DefaultSctpChannelConfig.java"]
  32a1241f_47d8_4f87_e62f_748203294904 -->|defined in| 72cd88a8_45ce_7d57_8779_93f3fa237ceb
  8cf8a08e_6090_af16_ba3b_4b2873189f0e["DefaultSctpChannelConfig()"]
  32a1241f_47d8_4f87_e62f_748203294904 -->|method| 8cf8a08e_6090_af16_ba3b_4b2873189f0e
  b9f6d80f_691d_140d_d281_aa62fe1a9e73["getOptions()"]
  32a1241f_47d8_4f87_e62f_748203294904 -->|method| b9f6d80f_691d_140d_d281_aa62fe1a9e73
  11940031_61ef_f276_cbe2_6b2967e25dbf["T()"]
  32a1241f_47d8_4f87_e62f_748203294904 -->|method| 11940031_61ef_f276_cbe2_6b2967e25dbf
  e5f8d2de_5a26_c71d_e39c_ca0a8e6ca840["setOption()"]
  32a1241f_47d8_4f87_e62f_748203294904 -->|method| e5f8d2de_5a26_c71d_e39c_ca0a8e6ca840
  073720b4_7970_1c2e_5a28_6804c3a6a035["isSctpNoDelay()"]
  32a1241f_47d8_4f87_e62f_748203294904 -->|method| 073720b4_7970_1c2e_5a28_6804c3a6a035
  4db8ae39_1bf5_9e82_cdfe_3becb91e5f38["SctpChannelConfig()"]
  32a1241f_47d8_4f87_e62f_748203294904 -->|method| 4db8ae39_1bf5_9e82_cdfe_3becb91e5f38
  f0bae2fd_111a_750f_c8a1_ef0645195c46["getSendBufferSize()"]
  32a1241f_47d8_4f87_e62f_748203294904 -->|method| f0bae2fd_111a_750f_c8a1_ef0645195c46
  6e19d7e7_21f0_b9d2_6f10_4410e400b98e["getReceiveBufferSize()"]
  32a1241f_47d8_4f87_e62f_748203294904 -->|method| 6e19d7e7_21f0_b9d2_6f10_4410e400b98e
  f1306211_b9fe_da38_76cc_bf6bf9e4e38b["getInitMaxStreams()"]
  32a1241f_47d8_4f87_e62f_748203294904 -->|method| f1306211_b9fe_da38_76cc_bf6bf9e4e38b

Relationship Graph

Source Code

transport-sctp/src/main/java/io/netty/channel/sctp/DefaultSctpChannelConfig.java lines 41–245

public class DefaultSctpChannelConfig extends DefaultChannelConfig implements SctpChannelConfig {

    private final SctpChannel javaChannel;

    public DefaultSctpChannelConfig(io.netty.channel.sctp.SctpChannel channel, SctpChannel javaChannel) {
        super(channel);
        this.javaChannel = ObjectUtil.checkNotNull(javaChannel, "javaChannel");

        // Enable TCP_NODELAY by default if possible.
        if (PlatformDependent.canEnableTcpNoDelayByDefault()) {
            try {
                setSctpNoDelay(true);
            } catch (Exception e) {
                // Ignore.
            }
        }
    }

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

    @SuppressWarnings("unchecked")
    @Override
    public <T> T getOption(ChannelOption<T> option) {
        if (option == SO_RCVBUF) {
            return (T) Integer.valueOf(getReceiveBufferSize());
        }
        if (option == SO_SNDBUF) {
            return (T) Integer.valueOf(getSendBufferSize());
        }
        if (option == SCTP_NODELAY) {
            return (T) Boolean.valueOf(isSctpNoDelay());
        }
        if (option == SCTP_INIT_MAXSTREAMS) {
            return (T) getInitMaxStreams();
        }
        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_SNDBUF) {
            setSendBufferSize((Integer) value);
        } else if (option == SCTP_NODELAY) {
            setSctpNoDelay((Boolean) value);
        } else if (option == SCTP_INIT_MAXSTREAMS) {
            setInitMaxStreams((SctpStandardSocketOptions.InitMaxStreams) value);
        } else {
            return super.setOption(option, value);
        }

        return true;
    }

    @Override
    public boolean isSctpNoDelay() {
        try {
            return javaChannel.getOption(SctpStandardSocketOptions.SCTP_NODELAY);
        } catch (IOException e) {
            throw new ChannelException(e);
        }
    }

    @Override
    public SctpChannelConfig setSctpNoDelay(boolean sctpNoDelay) {
        try {
            javaChannel.setOption(SctpStandardSocketOptions.SCTP_NODELAY, sctpNoDelay);
        } catch (IOException e) {
            throw new ChannelException(e);
        }
        return this;
    }

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free