Home / Class/ DefaultDatagramChannelConfig Class — netty Architecture

DefaultDatagramChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b["DefaultDatagramChannelConfig"]
  f582d936_bc48_5a47_796e_7b907ecbe3b4["DefaultDatagramChannelConfig.java"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|defined in| f582d936_bc48_5a47_796e_7b907ecbe3b4
  1bc31883_6765_c8e5_2f16_2d433aa11cf5["DefaultDatagramChannelConfig()"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|method| 1bc31883_6765_c8e5_2f16_2d433aa11cf5
  4a7000d6_6900_f323_bcd5_c3525584c817["DatagramSocket()"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|method| 4a7000d6_6900_f323_bcd5_c3525584c817
  6b707ecf_79b4_e054_038d_535bbc1543c3["getOptions()"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|method| 6b707ecf_79b4_e054_038d_535bbc1543c3
  5e5782f6_3abc_a8bd_5a88_0fa6079bad64["T()"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|method| 5e5782f6_3abc_a8bd_5a88_0fa6079bad64
  cce7cbd2_8cd1_9a45_0709_a4685a812781["setOption()"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|method| cce7cbd2_8cd1_9a45_0709_a4685a812781
  1b869761_0ce0_5d48_4421_66d43e8f6458["setActiveOnOpen()"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|method| 1b869761_0ce0_5d48_4421_66d43e8f6458
  23ddf91c_161b_b197_500e_a957a7dd9d07["isBroadcast()"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|method| 23ddf91c_161b_b197_500e_a957a7dd9d07
  bb275c64_c261_023a_b1e3_61b8958aa531["DatagramChannelConfig()"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|method| bb275c64_c261_023a_b1e3_61b8958aa531
  49c6f7ba_72ee_f774_0372_a3c53d132616["InetAddress()"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|method| 49c6f7ba_72ee_f774_0372_a3c53d132616
  a017c666_c170_5def_fe6b_7f6c09d3152c["isLoopbackModeDisabled()"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|method| a017c666_c170_5def_fe6b_7f6c09d3152c
  a4ec9651_7f3a_8bf7_ead7_7a820165ad5c["NetworkInterface()"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|method| a4ec9651_7f3a_8bf7_ead7_7a820165ad5c
  5777148b_365e_f524_54f7_830532178d7a["isReuseAddress()"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|method| 5777148b_365e_f524_54f7_830532178d7a
  2ef708d1_becf_6315_e7f2_9afb4345507c["getReceiveBufferSize()"]
  9c64cb0f_e8ca_4019_9deb_ea45fc3cf75b -->|method| 2ef708d1_becf_6315_e7f2_9afb4345507c

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/socket/DefaultDatagramChannelConfig.java lines 44–435

public class DefaultDatagramChannelConfig extends DefaultChannelConfig implements DatagramChannelConfig {

    private static final InternalLogger logger = InternalLoggerFactory.getInstance(DefaultDatagramChannelConfig.class);

    private final DatagramSocket javaSocket;
    private volatile boolean activeOnOpen;

    /**
     * Creates a new instance.
     */
    public DefaultDatagramChannelConfig(DatagramChannel channel, DatagramSocket javaSocket) {
        super(channel, new FixedRecvByteBufAllocator(2048));
        this.javaSocket = ObjectUtil.checkNotNull(javaSocket, "javaSocket");
    }

    protected final DatagramSocket javaSocket() {
        return javaSocket;
    }

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

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

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

        if (option == SO_BROADCAST) {
            setBroadcast((Boolean) value);
        } else if (option == SO_RCVBUF) {
            setReceiveBufferSize((Integer) value);
        } else if (option == SO_SNDBUF) {
            setSendBufferSize((Integer) value);
        } else if (option == SO_REUSEADDR) {
            setReuseAddress((Boolean) value);
        } else if (option == IP_MULTICAST_LOOP_DISABLED) {
            setLoopbackModeDisabled((Boolean) value);
        } else if (option == IP_MULTICAST_ADDR) {
            setInterface((InetAddress) value);

Frequently Asked Questions

What is the DefaultDatagramChannelConfig class?
DefaultDatagramChannelConfig is a class in the netty codebase, defined in transport/src/main/java/io/netty/channel/socket/DefaultDatagramChannelConfig.java.
Where is DefaultDatagramChannelConfig defined?
DefaultDatagramChannelConfig is defined in transport/src/main/java/io/netty/channel/socket/DefaultDatagramChannelConfig.java at line 44.

Analyze Your Own Codebase

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

Try Supermodel Free