Home / Class/ NioDatagramChannelConfig Class — netty Architecture

NioDatagramChannelConfig Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  abcc0b30_83eb_6c69_b4e2_bb32a14473ae["NioDatagramChannelConfig"]
  f42fd27c_88fe_831c_b63a_17338989112b["NioDatagramChannelConfig.java"]
  abcc0b30_83eb_6c69_b4e2_bb32a14473ae -->|defined in| f42fd27c_88fe_831c_b63a_17338989112b
  79c1a8f6_695f_f231_e941_a36b36f14c68["NioDatagramChannelConfig()"]
  abcc0b30_83eb_6c69_b4e2_bb32a14473ae -->|method| 79c1a8f6_695f_f231_e941_a36b36f14c68
  fe9f6a52_b576_bd85_d3af_ee59bdf0fdcd["getTimeToLive()"]
  abcc0b30_83eb_6c69_b4e2_bb32a14473ae -->|method| fe9f6a52_b576_bd85_d3af_ee59bdf0fdcd
  9fcf9a4f_c1b8_a172_7971_2abe510ef94c["DatagramChannelConfig()"]
  abcc0b30_83eb_6c69_b4e2_bb32a14473ae -->|method| 9fcf9a4f_c1b8_a172_7971_2abe510ef94c
  8bbce23a_7a9c_15d4_eafa_21ad36832e5c["InetAddress()"]
  abcc0b30_83eb_6c69_b4e2_bb32a14473ae -->|method| 8bbce23a_7a9c_15d4_eafa_21ad36832e5c
  239ff519_5b73_0763_112a_3c5e7ae7fdc3["NetworkInterface()"]
  abcc0b30_83eb_6c69_b4e2_bb32a14473ae -->|method| 239ff519_5b73_0763_112a_3c5e7ae7fdc3
  4920d9ca_f5bd_0cba_a720_7638e35ab34d["isLoopbackModeDisabled()"]
  abcc0b30_83eb_6c69_b4e2_bb32a14473ae -->|method| 4920d9ca_f5bd_0cba_a720_7638e35ab34d
  fd4c264e_9358_43cb_026a_00726df2a259["autoReadCleared()"]
  abcc0b30_83eb_6c69_b4e2_bb32a14473ae -->|method| fd4c264e_9358_43cb_026a_00726df2a259
  b6cd3100_b79b_7355_498c_08502475d6fa["T()"]
  abcc0b30_83eb_6c69_b4e2_bb32a14473ae -->|method| b6cd3100_b79b_7355_498c_08502475d6fa
  17ecb1b5_81f6_cea5_2058_56d6ac50f1e3["setOption0()"]
  abcc0b30_83eb_6c69_b4e2_bb32a14473ae -->|method| 17ecb1b5_81f6_cea5_2058_56d6ac50f1e3
  278d306f_24e5_ee09_0244_45ecf1f00fa0["setOption()"]
  abcc0b30_83eb_6c69_b4e2_bb32a14473ae -->|method| 278d306f_24e5_ee09_0244_45ecf1f00fa0
  86a2e27e_618b_bd7d_d039_60e254e082d5["getOptions()"]
  abcc0b30_83eb_6c69_b4e2_bb32a14473ae -->|method| 86a2e27e_618b_bd7d_d039_60e254e082d5

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannelConfig.java lines 37–147

class NioDatagramChannelConfig extends DefaultDatagramChannelConfig {
    private final DatagramChannel javaChannel;

    NioDatagramChannelConfig(NioDatagramChannel channel, DatagramChannel javaChannel) {
        super(channel, javaChannel.socket());
        this.javaChannel = javaChannel;
    }

    @Override
    public int getTimeToLive() {
        return getOption0(StandardSocketOptions.IP_MULTICAST_TTL);
    }

    @Override
    public DatagramChannelConfig setTimeToLive(int ttl) {
        setOption0(StandardSocketOptions.IP_MULTICAST_TTL, ttl);
        return this;
    }

    @Override
    public InetAddress getInterface() {
        NetworkInterface inf = getNetworkInterface();
        if (inf != null) {
            Enumeration<InetAddress> addresses = SocketUtils.addressesFromNetworkInterface(inf);
            if (addresses.hasMoreElements()) {
                return addresses.nextElement();
            }
        }
        return null;
    }

    @Override
    public DatagramChannelConfig setInterface(InetAddress interfaceAddress) {
        try {
            setNetworkInterface(NetworkInterface.getByInetAddress(interfaceAddress));
        } catch (SocketException e) {
            throw new ChannelException(e);
        }
        return this;
    }

    @Override
    public NetworkInterface getNetworkInterface() {
        return getOption0(StandardSocketOptions.IP_MULTICAST_IF);
    }

    @Override
    public DatagramChannelConfig setNetworkInterface(NetworkInterface networkInterface) {
        setOption0(StandardSocketOptions.IP_MULTICAST_IF, networkInterface);
        return this;
    }

    @Override
    public boolean isLoopbackModeDisabled() {
        return getOption0(StandardSocketOptions.IP_MULTICAST_LOOP);
    }

    @Override
    public DatagramChannelConfig setLoopbackModeDisabled(boolean loopbackModeDisabled) {
        setOption0(StandardSocketOptions.IP_MULTICAST_LOOP, loopbackModeDisabled);
        return this;
    }

    @Override
    public DatagramChannelConfig setAutoRead(boolean autoRead) {
        super.setAutoRead(autoRead);
        return this;
    }

    @Override
    protected void autoReadCleared() {
        ((NioDatagramChannel) channel).clearReadPending0();
    }

    private <T> T getOption0(SocketOption<T> option) {
        try {
            return javaChannel.getOption(option);
        } catch (IOException e) {
            throw new ChannelException(e);
        }
    }

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free