Home / Class/ OioDatagramChannel Class — netty Architecture

OioDatagramChannel Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b["OioDatagramChannel"]
  4ef0a871_8b5a_d896_4a1a_823d41287b0d["OioDatagramChannel.java"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|defined in| 4ef0a871_8b5a_d896_4a1a_823d41287b0d
  8a2acb24_840d_d01d_97c2_cf0340297378["MulticastSocket()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|method| 8a2acb24_840d_d01d_97c2_cf0340297378
  47eee24d_9e82_0397_c838_0213204d92c6["OioDatagramChannel()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|method| 47eee24d_9e82_0397_c838_0213204d92c6
  bb77f64e_2315_84af_9cab_1b4aeb364a91["ChannelMetadata()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|method| bb77f64e_2315_84af_9cab_1b4aeb364a91
  9656e51a_0037_b604_9b0c_00bb0950687e["DatagramChannelConfig()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|method| 9656e51a_0037_b604_9b0c_00bb0950687e
  292e1b3c_2266_c097_a353_5e69588618c6["isOpen()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|method| 292e1b3c_2266_c097_a353_5e69588618c6
  e147480c_b760_d480_5c65_a7de5065bac6["isActive()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|method| e147480c_b760_d480_5c65_a7de5065bac6
  7965e9d5_f16b_26d1_31ff_7fcce3a3ae28["isConnected()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|method| 7965e9d5_f16b_26d1_31ff_7fcce3a3ae28
  df493181_9ad7_65e4_83e9_aba244f18938["SocketAddress()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|method| df493181_9ad7_65e4_83e9_aba244f18938
  cd75b033_c35d_0691_8505_d7941b63fc87["doBind()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|method| cd75b033_c35d_0691_8505_d7941b63fc87
  f85abd0a_2f04_b8f5_d604_14e34d84f722["InetSocketAddress()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|method| f85abd0a_2f04_b8f5_d604_14e34d84f722
  062dc9e3_84e7_06c5_3f84_b3d9c43794e2["doConnect()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|method| 062dc9e3_84e7_06c5_3f84_b3d9c43794e2
  bcddbdba_91ff_66c6_457d_e164d8511195["doDisconnect()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|method| bcddbdba_91ff_66c6_457d_e164d8511195
  77ef3f16_6eed_977a_6dca_3cbe783d5c35["doClose()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b -->|method| 77ef3f16_6eed_977a_6dca_3cbe783d5c35

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/socket/oio/OioDatagramChannel.java lines 60–460

@Deprecated
public class OioDatagramChannel extends AbstractOioMessageChannel
                                implements DatagramChannel {

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

    private static final ChannelMetadata METADATA = new ChannelMetadata(true);
    private static final String EXPECTED_TYPES =
            " (expected: " + StringUtil.simpleClassName(DatagramPacket.class) + ", " +
            StringUtil.simpleClassName(AddressedEnvelope.class) + '<' +
            StringUtil.simpleClassName(ByteBuf.class) + ", " +
            StringUtil.simpleClassName(SocketAddress.class) + ">, " +
            StringUtil.simpleClassName(ByteBuf.class) + ')';

    private final MulticastSocket socket;
    private final OioDatagramChannelConfig config;
    private final java.net.DatagramPacket tmpPacket = new java.net.DatagramPacket(EmptyArrays.EMPTY_BYTES, 0);

    private static MulticastSocket newSocket() {
        try {
            return new MulticastSocket(null);
        } catch (Exception e) {
            throw new ChannelException("failed to create a new socket", e);
        }
    }

    /**
     * Create a new instance with an new {@link MulticastSocket}.
     */
    public OioDatagramChannel() {
        this(newSocket());
    }

    /**
     * Create a new instance from the given {@link MulticastSocket}.
     *
     * @param socket    the {@link MulticastSocket} which is used by this instance
     */
    public OioDatagramChannel(MulticastSocket socket) {
        super(null);

        boolean success = false;
        try {
            socket.setSoTimeout(SO_TIMEOUT);
            socket.setBroadcast(false);
            success = true;
        } catch (SocketException e) {
            throw new ChannelException(
                    "Failed to configure the datagram socket timeout.", e);
        } finally {
            if (!success) {
                socket.close();
            }
        }

        this.socket = socket;
        config = new DefaultOioDatagramChannelConfig(this, socket);
    }

    @Override
    public ChannelMetadata metadata() {
        return METADATA;
    }

    /**
     * {@inheritDoc}
     *
     * This can be safely cast to {@link OioDatagramChannelConfig}.
     */
    @Override
    // TODO: Change return type to OioDatagramChannelConfig in next major release
    public DatagramChannelConfig config() {
        return config;
    }

    @Override
    public boolean isOpen() {
        return !socket.isClosed();
    }

    @Override

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free