Home / Class/ IoUringDatagramChannelConfig Class — netty Architecture

IoUringDatagramChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  e511f87c_1c78_d6c2_dc38_5912fd413edb["IoUringDatagramChannelConfig"]
  83d9047c_a45f_f542_7306_72a8a6ec779c["IoUringDatagramChannelConfig.java"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|defined in| 83d9047c_a45f_f542_7306_72a8a6ec779c
  98f7401c_9e84_fbd7_7d82_e5c0f637a9dd["IoUringDatagramChannelConfig()"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|method| 98f7401c_9e84_fbd7_7d82_e5c0f637a9dd
  9c32964a_bf3e_e2c2_f5bc_8f548ae89abc["getOptions()"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|method| 9c32964a_bf3e_e2c2_f5bc_8f548ae89abc
  d2956889_2a29_d629_25b4_e238651d65a0["T()"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|method| d2956889_2a29_d629_25b4_e238651d65a0
  cafb7364_a76d_01d2_1fa2_52ed29e6f746["setOption()"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|method| cafb7364_a76d_01d2_1fa2_52ed29e6f746
  c45b2a3d_ce30_306a_60c4_81d18163d0c6["setActiveOnOpen()"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|method| c45b2a3d_ce30_306a_60c4_81d18163d0c6
  476c5916_05d3_cba6_471c_ac1d7aada292["getActiveOnOpen()"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|method| 476c5916_05d3_cba6_471c_ac1d7aada292
  cc3e5444_a25e_a597_65c6_61046a885da4["getSendBufferSize()"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|method| cc3e5444_a25e_a597_65c6_61046a885da4
  9b8d9f49_56a1_168f_3aea_e167d3b6797b["getReceiveBufferSize()"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|method| 9b8d9f49_56a1_168f_3aea_e167d3b6797b
  0139a809_1f68_9e77_8541_6d7549c73a18["getTrafficClass()"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|method| 0139a809_1f68_9e77_8541_6d7549c73a18
  9cdc0b3e_3dec_41b1_080e_a957a4cb84fd["isReuseAddress()"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|method| 9cdc0b3e_3dec_41b1_080e_a957a4cb84fd
  2d60cf9b_c046_3dd5_d7b8_053a8e665b25["isBroadcast()"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|method| 2d60cf9b_c046_3dd5_d7b8_053a8e665b25
  746495ad_7f38_aed3_6fd7_ea627bc7c2c8["isLoopbackModeDisabled()"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|method| 746495ad_7f38_aed3_6fd7_ea627bc7c2c8
  a7e3d622_923c_96cd_d993_3d3dcf61d94c["getTimeToLive()"]
  e511f87c_1c78_d6c2_dc38_5912fd413edb -->|method| a7e3d622_923c_96cd_d993_3d3dcf61d94c

Relationship Graph

Source Code

transport-classes-io_uring/src/main/java/io/netty/channel/uring/IoUringDatagramChannelConfig.java lines 34–525

final class IoUringDatagramChannelConfig extends IoUringChannelConfig implements DatagramChannelConfig {
    private static final RecvByteBufAllocator DEFAULT_RCVBUF_ALLOCATOR = new FixedRecvByteBufAllocator(2048);
    private boolean activeOnOpen;
    private volatile int maxDatagramSize;

    IoUringDatagramChannelConfig(AbstractIoUringChannel channel) {
        super(channel);
        setRecvByteBufAllocator(DEFAULT_RCVBUF_ALLOCATOR);
    }

    @Override
    @SuppressWarnings("deprecation")
    public Map<ChannelOption<?>, Object> getOptions() {
        return getOptions(
                super.getOptions(),
                ChannelOption.SO_BROADCAST, ChannelOption.SO_RCVBUF, ChannelOption.SO_SNDBUF,
                ChannelOption.SO_REUSEADDR, ChannelOption.IP_MULTICAST_LOOP_DISABLED,
                ChannelOption.IP_MULTICAST_ADDR, ChannelOption.IP_MULTICAST_IF, ChannelOption.IP_MULTICAST_TTL,
                ChannelOption.IP_TOS, ChannelOption.DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION,
                IoUringChannelOption.SO_REUSEPORT, IoUringChannelOption.IP_FREEBIND,
                IoUringChannelOption.IP_TRANSPARENT, IoUringChannelOption.MAX_DATAGRAM_PAYLOAD_SIZE,
                IoUringChannelOption.IP_MULTICAST_ALL);
    }

    @SuppressWarnings({ "unchecked", "deprecation" })
    @Override
    public <T> T getOption(ChannelOption<T> option) {
        if (option == ChannelOption.SO_BROADCAST) {
            return (T) Boolean.valueOf(isBroadcast());
        }
        if (option == ChannelOption.SO_RCVBUF) {
            return (T) Integer.valueOf(getReceiveBufferSize());
        }
        if (option == ChannelOption.SO_SNDBUF) {
            return (T) Integer.valueOf(getSendBufferSize());
        }
        if (option == ChannelOption.SO_REUSEADDR) {
            return (T) Boolean.valueOf(isReuseAddress());
        }
        if (option == ChannelOption.IP_MULTICAST_LOOP_DISABLED) {
            return (T) Boolean.valueOf(isLoopbackModeDisabled());
        }
        if (option == ChannelOption.IP_MULTICAST_ADDR) {
            return (T) getInterface();
        }
        if (option == ChannelOption.IP_MULTICAST_IF) {
            return (T) getNetworkInterface();
        }
        if (option == ChannelOption.IP_MULTICAST_TTL) {
            return (T) Integer.valueOf(getTimeToLive());
        }
        if (option == ChannelOption.IP_TOS) {
            return (T) Integer.valueOf(getTrafficClass());
        }
        if (option == ChannelOption.DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION) {
            return (T) Boolean.valueOf(activeOnOpen);
        }
        if (option == IoUringChannelOption.SO_REUSEPORT) {
            return (T) Boolean.valueOf(isReusePort());
        }
        if (option == IoUringChannelOption.IP_TRANSPARENT) {
            return (T) Boolean.valueOf(isIpTransparent());
        }
        if (option == IoUringChannelOption.IP_FREEBIND) {
            return (T) Boolean.valueOf(isFreeBind());
        }
        if (option == IoUringChannelOption.MAX_DATAGRAM_PAYLOAD_SIZE) {
            return (T) Integer.valueOf(getMaxDatagramPayloadSize());
        }
        if (option == IoUringChannelOption.IP_MULTICAST_ALL) {
            return (T) Boolean.valueOf(isIpMulticastAll());
        }
        return super.getOption(option);
    }

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

        if (option == ChannelOption.SO_BROADCAST) {

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free