doWriteOrSendBytes() — netty Function Reference
Architecture documentation for the doWriteOrSendBytes() function in AbstractEpollChannel.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD f2f77a4d_7359_b0c8_8dbd_1e06b977dfee["doWriteOrSendBytes()"] 6a1b1970_2eef_b28f_03e7_8b11508deece["AbstractEpollChannel"] f2f77a4d_7359_b0c8_8dbd_1e06b977dfee -->|defined in| 6a1b1970_2eef_b28f_03e7_8b11508deece style f2f77a4d_7359_b0c8_8dbd_1e06b977dfee fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
transport-classes-epoll/src/main/java/io/netty/channel/epoll/AbstractEpollChannel.java lines 401–432
final long doWriteOrSendBytes(ByteBuf data, InetSocketAddress remoteAddress, boolean fastOpen)
throws IOException {
assert !(fastOpen && remoteAddress == null) : "fastOpen requires a remote address";
if (data.hasMemoryAddress()) {
long memoryAddress = data.memoryAddress();
if (remoteAddress == null) {
return socket.sendAddress(memoryAddress, data.readerIndex(), data.writerIndex());
}
return socket.sendToAddress(memoryAddress, data.readerIndex(), data.writerIndex(),
remoteAddress.getAddress(), remoteAddress.getPort(), fastOpen);
}
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) {
return socket.writevAddresses(array.memoryAddress(0), cnt);
}
return socket.sendToAddresses(array.memoryAddress(0), cnt,
remoteAddress.getAddress(), remoteAddress.getPort(), fastOpen);
}
ByteBuffer nioData = data.internalNioBuffer(data.readerIndex(), data.readableBytes());
if (remoteAddress == null) {
return socket.send(nioData, nioData.position(), nioData.limit());
}
return socket.sendTo(nioData, nioData.position(), nioData.limit(),
remoteAddress.getAddress(), remoteAddress.getPort(), fastOpen);
}
Domain
Subdomains
Source
Frequently Asked Questions
What does doWriteOrSendBytes() do?
doWriteOrSendBytes() is a function in the netty codebase, defined in transport-classes-epoll/src/main/java/io/netty/channel/epoll/AbstractEpollChannel.java.
Where is doWriteOrSendBytes() defined?
doWriteOrSendBytes() is defined in transport-classes-epoll/src/main/java/io/netty/channel/epoll/AbstractEpollChannel.java at line 401.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free