Home / Class/ KQueueChannelConfig Class — netty Architecture

KQueueChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  5b1a4258_c619_2f7e_64fe_ed59667f293f["KQueueChannelConfig"]
  38405807_9dd8_cb29_323d_8e8cc1a1f13f["KQueueChannelConfig.java"]
  5b1a4258_c619_2f7e_64fe_ed59667f293f -->|defined in| 38405807_9dd8_cb29_323d_8e8cc1a1f13f
  aa9fea7b_bccb_80f0_dde8_c8b0cc2d5be3["KQueueChannelConfig()"]
  5b1a4258_c619_2f7e_64fe_ed59667f293f -->|method| aa9fea7b_bccb_80f0_dde8_c8b0cc2d5be3
  b4d8d4a5_dff9_919d_5621_99ae67e1ef81["getOptions()"]
  5b1a4258_c619_2f7e_64fe_ed59667f293f -->|method| b4d8d4a5_dff9_919d_5621_99ae67e1ef81
  d8d2da7c_bcbc_cb50_5e5e_3253bf97b73a["T()"]
  5b1a4258_c619_2f7e_64fe_ed59667f293f -->|method| d8d2da7c_bcbc_cb50_5e5e_3253bf97b73a
  466a4566_456c_0594_7a69_66501feabb95["setOption()"]
  5b1a4258_c619_2f7e_64fe_ed59667f293f -->|method| 466a4566_456c_0594_7a69_66501feabb95
  bae843e9_55e8_513c_ffc2_2411a67d6dd2["getRcvAllocTransportProvidesGuess()"]
  5b1a4258_c619_2f7e_64fe_ed59667f293f -->|method| bae843e9_55e8_513c_ffc2_2411a67d6dd2
  cbd92dc3_4469_1ab9_8a24_e8bf95120736["autoReadCleared()"]
  5b1a4258_c619_2f7e_64fe_ed59667f293f -->|method| cbd92dc3_4469_1ab9_8a24_e8bf95120736
  a2d5c7a2_dc64_2c2d_c5be_ef943bc420a9["setMaxBytesPerGatheringWrite()"]
  5b1a4258_c619_2f7e_64fe_ed59667f293f -->|method| a2d5c7a2_dc64_2c2d_c5be_ef943bc420a9
  31e6817c_0a12_3b4d_d6ce_1089e236ada8["getMaxBytesPerGatheringWrite()"]
  5b1a4258_c619_2f7e_64fe_ed59667f293f -->|method| 31e6817c_0a12_3b4d_d6ce_1089e236ada8

Relationship Graph

Source Code

transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/KQueueChannelConfig.java lines 36–206

public class KQueueChannelConfig extends DefaultChannelConfig {
    private volatile boolean transportProvidesGuess;
    private volatile long maxBytesPerGatheringWrite = SSIZE_MAX;

    KQueueChannelConfig(AbstractKQueueChannel channel) {
        super(channel);
    }

    KQueueChannelConfig(AbstractKQueueChannel channel, RecvByteBufAllocator recvByteBufAllocator) {
        super(channel, recvByteBufAllocator);
    }

    @Override
    @SuppressWarnings("deprecation")
    public Map<ChannelOption<?>, Object> getOptions() {
        return getOptions(super.getOptions(), RCV_ALLOC_TRANSPORT_PROVIDES_GUESS);
    }

    @SuppressWarnings("unchecked")
    @Override
    public <T> T getOption(ChannelOption<T> option) {
        if (option == RCV_ALLOC_TRANSPORT_PROVIDES_GUESS) {
            return (T) Boolean.valueOf(getRcvAllocTransportProvidesGuess());
        }
        try {
            if (option instanceof IntegerUnixChannelOption) {
                IntegerUnixChannelOption opt = (IntegerUnixChannelOption) option;
                return (T) Integer.valueOf(((AbstractKQueueChannel) channel).socket.getIntOpt(
                        opt.level(), opt.optname()));
            }
            if (option instanceof RawUnixChannelOption) {
                RawUnixChannelOption opt = (RawUnixChannelOption) option;
                ByteBuffer out = ByteBuffer.allocate(opt.length());
                ((AbstractKQueueChannel) channel).socket.getRawOpt(opt.level(), opt.optname(), out);
                return (T) out.flip();
            }
        } catch (IOException e) {
            throw new ChannelException(e);
        }
        return super.getOption(option);
    }

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

        if (option == RCV_ALLOC_TRANSPORT_PROVIDES_GUESS) {
            setRcvAllocTransportProvidesGuess((Boolean) value);
        } else {
            try {
                if (option instanceof IntegerUnixChannelOption) {
                    IntegerUnixChannelOption opt = (IntegerUnixChannelOption) option;
                    ((AbstractKQueueChannel) channel).socket.setIntOpt(opt.level(), opt.optname(), (Integer) value);
                    return true;
                } else if (option instanceof RawUnixChannelOption) {
                    RawUnixChannelOption opt = (RawUnixChannelOption) option;
                    ((AbstractKQueueChannel) channel).socket.setRawOpt(opt.level(), opt.optname(), (ByteBuffer) value);
                    return true;
                }
            } catch (IOException e) {
                throw new ChannelException(e);
            }
            return super.setOption(option, value);
        }

        return true;
    }

    /**
     * If this is {@code true} then the {@link RecvByteBufAllocator.Handle#guess()} will be overridden to always attempt
     * to read as many bytes as kqueue says are available.
     *
     * @deprecated will be removed and is ignored.
     */
    @Deprecated
    public KQueueChannelConfig setRcvAllocTransportProvidesGuess(boolean transportProvidesGuess) {
        this.transportProvidesGuess = transportProvidesGuess;
        return this;
    }

    /**

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free