AbstractKQueueDatagramChannel Class — netty Architecture
Architecture documentation for the AbstractKQueueDatagramChannel class in AbstractKQueueDatagramChannel.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 38b6ae38_f4e2_8750_9e5c_70acc2edbcc4["AbstractKQueueDatagramChannel"] c088ad10_047d_fafa_9e03_6ea9052ddbf9["AbstractKQueueDatagramChannel.java"] 38b6ae38_f4e2_8750_9e5c_70acc2edbcc4 -->|defined in| c088ad10_047d_fafa_9e03_6ea9052ddbf9 3967e726_cfac_fc8e_d75f_32764eb5aadb["AbstractKQueueDatagramChannel()"] 38b6ae38_f4e2_8750_9e5c_70acc2edbcc4 -->|method| 3967e726_cfac_fc8e_d75f_32764eb5aadb ef853bf6_1828_c075_614d_9de488834374["ChannelMetadata()"] 38b6ae38_f4e2_8750_9e5c_70acc2edbcc4 -->|method| ef853bf6_1828_c075_614d_9de488834374 7cbafd71_0401_6af2_a303_55c1e34e6c03["doWriteMessage()"] 38b6ae38_f4e2_8750_9e5c_70acc2edbcc4 -->|method| 7cbafd71_0401_6af2_a303_55c1e34e6c03 47400952_c561_3b43_4d14_a21536400da2["doWrite()"] 38b6ae38_f4e2_8750_9e5c_70acc2edbcc4 -->|method| 47400952_c561_3b43_4d14_a21536400da2
Relationship Graph
Source Code
transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/AbstractKQueueDatagramChannel.java lines 24–76
abstract class AbstractKQueueDatagramChannel extends AbstractKQueueChannel {
private static final ChannelMetadata METADATA = new ChannelMetadata(true, 16);
AbstractKQueueDatagramChannel(Channel parent, BsdSocket fd, boolean active) {
super(parent, fd, active);
}
@Override
public ChannelMetadata metadata() {
return METADATA;
}
protected abstract boolean doWriteMessage(Object msg) throws Exception;
@Override
protected void doWrite(ChannelOutboundBuffer in) throws Exception {
int maxMessagesPerWrite = maxMessagesPerWrite();
while (maxMessagesPerWrite > 0) {
Object msg = in.current();
if (msg == null) {
break;
}
try {
boolean done = false;
for (int i = config().getWriteSpinCount(); i > 0; --i) {
if (doWriteMessage(msg)) {
done = true;
break;
}
}
if (done) {
in.remove();
maxMessagesPerWrite--;
} else {
break;
}
} catch (IOException e) {
maxMessagesPerWrite--;
// Continue on write error as a DatagramChannel can write to multiple remote peers
//
// See https://github.com/netty/netty/issues/2665
in.remove(e);
}
}
// Whether all messages were written or not.
writeFilter(!in.isEmpty());
}
}
Defined In
Source
Frequently Asked Questions
What is the AbstractKQueueDatagramChannel class?
AbstractKQueueDatagramChannel is a class in the netty codebase, defined in transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/AbstractKQueueDatagramChannel.java.
Where is AbstractKQueueDatagramChannel defined?
AbstractKQueueDatagramChannel is defined in transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/AbstractKQueueDatagramChannel.java at line 24.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free