KQueueDomainDatagramChannel Class — netty Architecture
Architecture documentation for the KQueueDomainDatagramChannel class in KQueueDomainDatagramChannel.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD aee0b9ba_3ced_92d5_a3dd_7cc99703a102["KQueueDomainDatagramChannel"] 7421b834_335b_6d36_410f_56f2a469f00d["KQueueDomainDatagramChannel.java"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|defined in| 7421b834_335b_6d36_410f_56f2a469f00d d101813c_062d_dd07_112e_3cc2b5668ac7["KQueueDomainDatagramChannel()"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| d101813c_062d_dd07_112e_3cc2b5668ac7 3815abf4_35c2_abbe_fe16_e4b10e087eea["KQueueDomainDatagramChannelConfig()"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| 3815abf4_35c2_abbe_fe16_e4b10e087eea 1f5de168_2217_71da_2144_c2ee679aa74b["doBind()"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| 1f5de168_2217_71da_2144_c2ee679aa74b c93735c1_518b_fd41_b25c_2f70e7624f12["doClose()"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| c93735c1_518b_fd41_b25c_2f70e7624f12 ad0886e9_79c4_9d20_9d03_150d5dd54407["doConnect()"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| ad0886e9_79c4_9d20_9d03_150d5dd54407 58630b9e_fd0d_a420_312c_05d564ad966d["doDisconnect()"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| 58630b9e_fd0d_a420_312c_05d564ad966d 2773be4c_7c62_ed15_1019_b853e3594e6e["doWriteMessage()"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| 2773be4c_7c62_ed15_1019_b853e3594e6e dc4226f1_8d65_b231_0796_e34f5e04d2f6["Object()"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| dc4226f1_8d65_b231_0796_e34f5e04d2f6 fa7b64ae_68e8_0697_d9ad_072022cc8a3c["isActive()"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| fa7b64ae_68e8_0697_d9ad_072022cc8a3c 2c351367_912b_076f_eb4a_fa55691630ca["isConnected()"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| 2c351367_912b_076f_eb4a_fa55691630ca e5bc0ff4_888c_06cc_c724_a310e1214380["DomainSocketAddress()"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| e5bc0ff4_888c_06cc_c724_a310e1214380 d0057187_9479_927c_4541_db74b7994a6d["AbstractKQueueUnsafe()"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| d0057187_9479_927c_4541_db74b7994a6d 4823808b_54de_5038_d670_c3734c498c87["PeerCredentials()"] aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| 4823808b_54de_5038_d670_c3734c498c87
Relationship Graph
Source Code
transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/KQueueDomainDatagramChannel.java lines 41–327
public final class KQueueDomainDatagramChannel extends AbstractKQueueDatagramChannel implements DomainDatagramChannel {
private static final String EXPECTED_TYPES =
" (expected: " +
StringUtil.simpleClassName(DomainDatagramPacket.class) + ", " +
StringUtil.simpleClassName(AddressedEnvelope.class) + '<' +
StringUtil.simpleClassName(ByteBuf.class) + ", " +
StringUtil.simpleClassName(DomainSocketAddress.class) + ">, " +
StringUtil.simpleClassName(ByteBuf.class) + ')';
private volatile boolean connected;
private volatile DomainSocketAddress local;
private volatile DomainSocketAddress remote;
private final KQueueDomainDatagramChannelConfig config;
public KQueueDomainDatagramChannel() {
this(newSocketDomainDgram(), false);
}
public KQueueDomainDatagramChannel(int fd) {
this(new BsdSocket(fd), true);
}
private KQueueDomainDatagramChannel(BsdSocket socket, boolean active) {
super(null, socket, active);
config = new KQueueDomainDatagramChannelConfig(this);
}
@Override
public KQueueDomainDatagramChannelConfig config() {
return config;
}
@Override
protected void doBind(SocketAddress localAddress) throws Exception {
super.doBind(localAddress);
local = (DomainSocketAddress) localAddress;
active = true;
}
@Override
protected void doClose() throws Exception {
super.doClose();
connected = active = false;
local = null;
remote = null;
}
@Override
protected boolean doConnect(SocketAddress remoteAddress, SocketAddress localAddress) throws Exception {
if (super.doConnect(remoteAddress, localAddress)) {
if (localAddress != null) {
local = (DomainSocketAddress) localAddress;
}
remote = (DomainSocketAddress) remoteAddress;
connected = true;
return true;
}
return false;
}
@Override
protected void doDisconnect() throws Exception {
doClose();
}
@Override
protected boolean doWriteMessage(Object msg) throws Exception {
final ByteBuf data;
DomainSocketAddress remoteAddress;
if (msg instanceof AddressedEnvelope) {
@SuppressWarnings("unchecked")
AddressedEnvelope<ByteBuf, DomainSocketAddress> envelope =
(AddressedEnvelope<ByteBuf, DomainSocketAddress>) msg;
data = envelope.content();
remoteAddress = envelope.recipient();
} else {
data = (ByteBuf) msg;
remoteAddress = null;
}
Defined In
Source
Frequently Asked Questions
What is the KQueueDomainDatagramChannel class?
KQueueDomainDatagramChannel is a class in the netty codebase, defined in transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/KQueueDomainDatagramChannel.java.
Where is KQueueDomainDatagramChannel defined?
KQueueDomainDatagramChannel is defined in transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/KQueueDomainDatagramChannel.java at line 41.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free