Home / Function/ doReadMessages() — netty Function Reference

doReadMessages() — netty Function Reference

Architecture documentation for the doReadMessages() function in OioDatagramChannel.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  8ae45d83_11d5_f88d_3134_664d569278ec["doReadMessages()"]
  a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b["OioDatagramChannel"]
  8ae45d83_11d5_f88d_3134_664d569278ec -->|defined in| a7905bd8_19b4_15f5_a2e6_da0e5df1cc1b
  style 8ae45d83_11d5_f88d_3134_664d569278ec fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/socket/oio/OioDatagramChannel.java lines 210–245

    @Override
    protected int doReadMessages(List<Object> buf) throws Exception {
        DatagramChannelConfig config = config();
        final RecvByteBufAllocator.Handle allocHandle = unsafe().recvBufAllocHandle();

        ByteBuf data = config.getAllocator().heapBuffer(allocHandle.guess());
        boolean free = true;
        try {
            // Ensure we null out the address which may have been set before.
            tmpPacket.setAddress(null);
            tmpPacket.setData(data.array(), data.arrayOffset(), data.capacity());
            socket.receive(tmpPacket);

            InetSocketAddress remoteAddr = (InetSocketAddress) tmpPacket.getSocketAddress();

            allocHandle.lastBytesRead(tmpPacket.getLength());
            buf.add(new DatagramPacket(data.writerIndex(allocHandle.lastBytesRead()), localAddress(), remoteAddr));
            free = false;
            return 1;
        } catch (SocketTimeoutException e) {
            // Expected
            return 0;
        } catch (SocketException e) {
            if (!e.getMessage().toLowerCase(Locale.US).contains("socket closed")) {
                throw e;
            }
            return -1;
        } catch (Throwable cause) {
            PlatformDependent.throwException(cause);
            return -1;
        } finally {
            if (free) {
                data.release();
            }
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does doReadMessages() do?
doReadMessages() is a function in the netty codebase, defined in transport/src/main/java/io/netty/channel/socket/oio/OioDatagramChannel.java.
Where is doReadMessages() defined?
doReadMessages() is defined in transport/src/main/java/io/netty/channel/socket/oio/OioDatagramChannel.java at line 210.

Analyze Your Own Codebase

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

Try Supermodel Free