Home / Function/ connectedRead() — netty Function Reference

connectedRead() — netty Function Reference

Architecture documentation for the connectedRead() function in EpollDatagramChannel.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  a9b1c5fd_68a8_def9_939f_1fe28c28b12c["connectedRead()"]
  dab3c3bb_b3e2_f3b8_e8e0_37c99496afe9["EpollDatagramChannel"]
  a9b1c5fd_68a8_def9_939f_1fe28c28b12c -->|defined in| dab3c3bb_b3e2_f3b8_e8e0_37c99496afe9
  0ad4ff23_5654_f57a_1eda_1a36ffc34db3["epollInReady()"]
  0ad4ff23_5654_f57a_1eda_1a36ffc34db3 -->|calls| a9b1c5fd_68a8_def9_939f_1fe28c28b12c
  style a9b1c5fd_68a8_def9_939f_1fe28c28b12c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport-classes-epoll/src/main/java/io/netty/channel/epoll/EpollDatagramChannel.java lines 615–653

    private boolean connectedRead(EpollRecvByteAllocatorHandle allocHandle, ByteBuf byteBuf, int maxDatagramPacketSize)
            throws Exception {
        try {
            int writable = maxDatagramPacketSize != 0 ? Math.min(byteBuf.writableBytes(), maxDatagramPacketSize)
                    : byteBuf.writableBytes();
            allocHandle.attemptedBytesRead(writable);

            int writerIndex = byteBuf.writerIndex();
            int localReadAmount;
            if (byteBuf.hasMemoryAddress()) {
                localReadAmount = socket.recvAddress(byteBuf.memoryAddress(), writerIndex, writerIndex + writable);
            } else {
                ByteBuffer buf = byteBuf.internalNioBuffer(writerIndex, writable);
                localReadAmount = socket.recv(buf, buf.position(), buf.limit());
            }

            if (localReadAmount <= 0) {
                allocHandle.lastBytesRead(localReadAmount);

                // nothing was read, release the buffer.
                return false;
            }
            byteBuf.writerIndex(writerIndex + localReadAmount);

            allocHandle.lastBytesRead(maxDatagramPacketSize <= 0 ?
                    localReadAmount : writable);

            DatagramPacket packet = new DatagramPacket(byteBuf, localAddress(), remoteAddress());
            allocHandle.incMessagesRead(1);

            pipeline().fireChannelRead(packet);
            byteBuf = null;
            return true;
        } finally {
            if (byteBuf != null) {
                byteBuf.release();
            }
        }
    }

Domain

Subdomains

Called By

Frequently Asked Questions

What does connectedRead() do?
connectedRead() is a function in the netty codebase, defined in transport-classes-epoll/src/main/java/io/netty/channel/epoll/EpollDatagramChannel.java.
Where is connectedRead() defined?
connectedRead() is defined in transport-classes-epoll/src/main/java/io/netty/channel/epoll/EpollDatagramChannel.java at line 615.
What calls connectedRead()?
connectedRead() is called by 1 function(s): epollInReady.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free