doWriteMessage() — netty Function Reference
Architecture documentation for the doWriteMessage() function in EpollDomainDatagramChannel.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 441f6996_462b_cce7_ce87_8bf40d88c1be["doWriteMessage()"] 7202d69c_3d79_83a7_24dc_27b53c2f5789["EpollDomainDatagramChannel"] 441f6996_462b_cce7_ce87_8bf40d88c1be -->|defined in| 7202d69c_3d79_83a7_24dc_27b53c2f5789 3097a55a_0d29_2543_f00c_0bdde3cddd90["doWrite()"] 3097a55a_0d29_2543_f00c_0bdde3cddd90 -->|calls| 441f6996_462b_cce7_ce87_8bf40d88c1be style 441f6996_462b_cce7_ce87_8bf40d88c1be fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
transport-classes-epoll/src/main/java/io/netty/channel/epoll/EpollDomainDatagramChannel.java lines 155–206
private 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;
}
final int dataLen = data.readableBytes();
if (dataLen == 0) {
return true;
}
final long writtenBytes;
if (data.hasMemoryAddress()) {
long memoryAddress = data.memoryAddress();
if (remoteAddress == null) {
writtenBytes = socket.sendAddress(memoryAddress, data.readerIndex(), data.writerIndex());
} else {
writtenBytes = socket.sendToAddressDomainSocket(memoryAddress, data.readerIndex(), data.writerIndex(),
remoteAddress.path().getBytes(CharsetUtil.UTF_8));
}
} else if (data.nioBufferCount() > 1) {
IovArray array = ((NativeArrays) registration().attachment()).cleanIovArray();
array.add(data, data.readerIndex(), data.readableBytes());
int cnt = array.count();
assert cnt != 0;
if (remoteAddress == null) {
writtenBytes = socket.writevAddresses(array.memoryAddress(0), cnt);
} else {
writtenBytes = socket.sendToAddressesDomainSocket(array.memoryAddress(0), cnt,
remoteAddress.path().getBytes(CharsetUtil.UTF_8));
}
} else {
ByteBuffer nioData = data.internalNioBuffer(data.readerIndex(), data.readableBytes());
if (remoteAddress == null) {
writtenBytes = socket.send(nioData, nioData.position(), nioData.limit());
} else {
writtenBytes = socket.sendToDomainSocket(nioData, nioData.position(), nioData.limit(),
remoteAddress.path().getBytes(CharsetUtil.UTF_8));
}
}
return writtenBytes > 0;
}
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does doWriteMessage() do?
doWriteMessage() is a function in the netty codebase, defined in transport-classes-epoll/src/main/java/io/netty/channel/epoll/EpollDomainDatagramChannel.java.
Where is doWriteMessage() defined?
doWriteMessage() is defined in transport-classes-epoll/src/main/java/io/netty/channel/epoll/EpollDomainDatagramChannel.java at line 155.
What calls doWriteMessage()?
doWriteMessage() is called by 1 function(s): doWrite.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free