Home / Class/ IoUringDomainSocketChannelConfig Class — netty Architecture

IoUringDomainSocketChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  558671c8_3243_39e9_45ca_33a063474796["IoUringDomainSocketChannelConfig"]
  33033938_1041_1a60_6780_4286bebeb9cd["IoUringDomainSocketChannelConfig.java"]
  558671c8_3243_39e9_45ca_33a063474796 -->|defined in| 33033938_1041_1a60_6780_4286bebeb9cd
  65fabc7e_3b0e_c9e1_9c74_49fd6c0565cd["IoUringDomainSocketChannelConfig()"]
  558671c8_3243_39e9_45ca_33a063474796 -->|method| 65fabc7e_3b0e_c9e1_9c74_49fd6c0565cd
  163db47d_32ee_8001_8f37_558695daafc3["getOptions()"]
  558671c8_3243_39e9_45ca_33a063474796 -->|method| 163db47d_32ee_8001_8f37_558695daafc3
  4dfd3ee4_582b_003e_4be2_6503880bc267["T()"]
  558671c8_3243_39e9_45ca_33a063474796 -->|method| 4dfd3ee4_582b_003e_4be2_6503880bc267
  6343a2de_046a_2ae6_2359_890bfa6bdeee["setOption()"]
  558671c8_3243_39e9_45ca_33a063474796 -->|method| 6343a2de_046a_2ae6_2359_890bfa6bdeee
  5e5209c5_b347_46e1_09a8_3051cfc9a5a4["getSendBufferSize()"]
  558671c8_3243_39e9_45ca_33a063474796 -->|method| 5e5209c5_b347_46e1_09a8_3051cfc9a5a4
  67361792_29cd_e846_c7b6_ec6ebfd19b70["getReceiveBufferSize()"]
  558671c8_3243_39e9_45ca_33a063474796 -->|method| 67361792_29cd_e846_c7b6_ec6ebfd19b70
  2206b71d_6178_767b_bd80_431447346b58["DomainSocketReadMode()"]
  558671c8_3243_39e9_45ca_33a063474796 -->|method| 2206b71d_6178_767b_bd80_431447346b58
  77e5e3b0_00c3_625c_c028_cf8a4c19725d["isAllowHalfClosure()"]
  558671c8_3243_39e9_45ca_33a063474796 -->|method| 77e5e3b0_00c3_625c_c028_cf8a4c19725d
  fd5f52da_7e1c_415c_3bcb_f640c575a0ee["DuplexChannelConfig()"]
  558671c8_3243_39e9_45ca_33a063474796 -->|method| fd5f52da_7e1c_415c_3bcb_f640c575a0ee

Relationship Graph

Source Code

transport-classes-io_uring/src/main/java/io/netty/channel/uring/IoUringDomainSocketChannelConfig.java lines 38–222

final class IoUringDomainSocketChannelConfig extends IoUringStreamChannelConfig
        implements DomainSocketChannelConfig, DuplexChannelConfig {
    @SuppressWarnings("checkstyle:LineLength") //Avoid Checkstyle thinking this is too long
    private static final AtomicReferenceFieldUpdater<IoUringDomainSocketChannelConfig, DomainSocketReadMode> MODE_UPDATER =
            AtomicReferenceFieldUpdater.newUpdater(IoUringDomainSocketChannelConfig.class, DomainSocketReadMode.class, "mode");

    private volatile DomainSocketReadMode mode = DomainSocketReadMode.BYTES;
    private volatile boolean allowHalfClosure;

    IoUringDomainSocketChannelConfig(IoUringDomainSocketChannel channel) {
        super(channel);
    }

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

    @Override
    public <T> T getOption(ChannelOption<T> option) {
        if (option == DOMAIN_SOCKET_READ_MODE) {
            return (T) getReadMode();
        }
        if (option == ALLOW_HALF_CLOSURE) {
            return (T) Boolean.valueOf(isAllowHalfClosure());
        }
        if (option == SO_SNDBUF) {
            return (T) Integer.valueOf(getSendBufferSize());
        }
        if (option == SO_RCVBUF) {
            return (T) Integer.valueOf(getReceiveBufferSize());
        }
        return super.getOption(option);
    }

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

        if (option == DOMAIN_SOCKET_READ_MODE) {
            setReadMode((DomainSocketReadMode) value);
        } else if (option == ALLOW_HALF_CLOSURE) {
            setAllowHalfClosure((Boolean) value);
        } else if (option == SO_SNDBUF) {
            setSendBufferSize((Integer) value);
        } else if (option == SO_RCVBUF) {
            setReceiveBufferSize((Integer) value);
        } else {
            return super.setOption(option, value);
        }

        return true;
    }

    public int getSendBufferSize() {
        try {
            return ((IoUringDomainSocketChannel) channel).socket.getSendBufferSize();
        } catch (IOException e) {
            throw new ChannelException(e);
        }
    }

    public IoUringDomainSocketChannelConfig setSendBufferSize(int sendBufferSize) {
        try {
            ((IoUringDomainSocketChannel) channel).socket.setSendBufferSize(sendBufferSize);
            return this;
        } catch (IOException e) {
            throw new ChannelException(e);
        }
    }

    public int getReceiveBufferSize() {
        try {
            return ((IoUringDomainSocketChannel) channel).socket.getReceiveBufferSize();
        } catch (IOException e) {
            throw new ChannelException(e);
        }
    }

    public IoUringDomainSocketChannelConfig setReceiveBufferSize(int receiveBufferSize) {
        try {

Frequently Asked Questions

What is the IoUringDomainSocketChannelConfig class?
IoUringDomainSocketChannelConfig is a class in the netty codebase, defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/IoUringDomainSocketChannelConfig.java.
Where is IoUringDomainSocketChannelConfig defined?
IoUringDomainSocketChannelConfig is defined in transport-classes-io_uring/src/main/java/io/netty/channel/uring/IoUringDomainSocketChannelConfig.java at line 38.

Analyze Your Own Codebase

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

Try Supermodel Free