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
Source
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