Home / Class/ EpollChannelConfig Class — netty Architecture

EpollChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  f9498616_1338_efe9_d27b_38c8a37a3a64["EpollChannelConfig"]
  24bf91d7_7baa_cedb_312e_bdea3cb78661["EpollChannelConfig.java"]
  f9498616_1338_efe9_d27b_38c8a37a3a64 -->|defined in| 24bf91d7_7baa_cedb_312e_bdea3cb78661
  ea9aaf54_13bc_cbd3_e141_5eb1663cdd2b["EpollChannelConfig()"]
  f9498616_1338_efe9_d27b_38c8a37a3a64 -->|method| ea9aaf54_13bc_cbd3_e141_5eb1663cdd2b
  bcb5d3cc_7a38_e1af_f64b_4dcac46eb9ae["LinuxSocket()"]
  f9498616_1338_efe9_d27b_38c8a37a3a64 -->|method| bcb5d3cc_7a38_e1af_f64b_4dcac46eb9ae
  84c9f2f9_1628_5eaf_1109_008ff445c1ab["Channel()"]
  f9498616_1338_efe9_d27b_38c8a37a3a64 -->|method| 84c9f2f9_1628_5eaf_1109_008ff445c1ab
  ee6cb0ef_beee_111a_6d41_a6a381e0308f["getOptions()"]
  f9498616_1338_efe9_d27b_38c8a37a3a64 -->|method| ee6cb0ef_beee_111a_6d41_a6a381e0308f
  03c2c12a_62ed_e764_4fcd_75efafac21ff["T()"]
  f9498616_1338_efe9_d27b_38c8a37a3a64 -->|method| 03c2c12a_62ed_e764_4fcd_75efafac21ff
  0b125d12_7be1_50bb_efcc_966c0f640d22["setOption()"]
  f9498616_1338_efe9_d27b_38c8a37a3a64 -->|method| 0b125d12_7be1_50bb_efcc_966c0f640d22
  a8901b2a_9d43_18a2_35ff_7af65a801210["EpollMode()"]
  f9498616_1338_efe9_d27b_38c8a37a3a64 -->|method| a8901b2a_9d43_18a2_35ff_7af65a801210
  088a97f2_7106_cdef_faf2_76496a3a6149["checkChannelNotRegistered()"]
  f9498616_1338_efe9_d27b_38c8a37a3a64 -->|method| 088a97f2_7106_cdef_faf2_76496a3a6149
  235bd406_f435_16b4_579f_0b300555e085["autoReadCleared()"]
  f9498616_1338_efe9_d27b_38c8a37a3a64 -->|method| 235bd406_f435_16b4_579f_0b300555e085
  315dd2cd_3510_9b53_25ec_db7c401503ec["setMaxBytesPerGatheringWrite()"]
  f9498616_1338_efe9_d27b_38c8a37a3a64 -->|method| 315dd2cd_3510_9b53_25ec_db7c401503ec
  15fb959c_b8de_39bb_47ac_c6a3d2be8bd4["getMaxBytesPerGatheringWrite()"]
  f9498616_1338_efe9_d27b_38c8a37a3a64 -->|method| 15fb959c_b8de_39bb_47ac_c6a3d2be8bd4

Relationship Graph

Source Code

transport-classes-epoll/src/main/java/io/netty/channel/epoll/EpollChannelConfig.java lines 37–229

public class EpollChannelConfig extends DefaultChannelConfig {

    private static final InternalLogger LOGGER = InternalLoggerFactory.getInstance(EpollChannelConfig.class);

    private volatile long maxBytesPerGatheringWrite = SSIZE_MAX;

    protected EpollChannelConfig(Channel channel) {
        super(checkAbstractEpollChannel(channel));
    }

    protected EpollChannelConfig(Channel channel, RecvByteBufAllocator recvByteBufAllocator) {
        super(checkAbstractEpollChannel(channel), recvByteBufAllocator);
    }

    protected LinuxSocket socket() {
        return ((AbstractEpollChannel) channel).socket;
    }

    private static Channel checkAbstractEpollChannel(Channel channel) {
        if (!(channel instanceof AbstractEpollChannel)) {
            throw new IllegalArgumentException("channel is not AbstractEpollChannel: " + channel.getClass());
        }
        return channel;
    }

    @Override
    public Map<ChannelOption<?>, Object> getOptions() {
        return getOptions(super.getOptions(), EpollChannelOption.EPOLL_MODE);
    }

    @SuppressWarnings("unchecked")
    @Override
    public <T> T getOption(ChannelOption<T> option) {
        if (option == EpollChannelOption.EPOLL_MODE) {
            return (T) getEpollMode();
        }
        try {
            if (option instanceof IntegerUnixChannelOption) {
                IntegerUnixChannelOption opt = (IntegerUnixChannelOption) option;
                return (T) Integer.valueOf(((AbstractEpollChannel) channel).socket.getIntOpt(
                        opt.level(), opt.optname()));
            }
            if (option instanceof RawUnixChannelOption) {
                RawUnixChannelOption opt = (RawUnixChannelOption) option;
                ByteBuffer out = ByteBuffer.allocate(opt.length());
                ((AbstractEpollChannel) 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 == EpollChannelOption.EPOLL_MODE) {
            setEpollMode((EpollMode) value);
        } else {
            try {
                if (option instanceof IntegerUnixChannelOption) {
                    IntegerUnixChannelOption opt = (IntegerUnixChannelOption) option;
                    ((AbstractEpollChannel) channel).socket.setIntOpt(opt.level(), opt.optname(), (Integer) value);
                    return true;
                } else if (option instanceof RawUnixChannelOption) {
                    RawUnixChannelOption opt = (RawUnixChannelOption) option;
                    ((AbstractEpollChannel) 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;
    }

    @Override
    public EpollChannelConfig setConnectTimeoutMillis(int connectTimeoutMillis) {
        super.setConnectTimeoutMillis(connectTimeoutMillis);

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free