Home / Function/ doWrite() — netty Function Reference

doWrite() — netty Function Reference

Architecture documentation for the doWrite() function in AbstractKQueueDatagramChannel.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  47400952_c561_3b43_4d14_a21536400da2["doWrite()"]
  38b6ae38_f4e2_8750_9e5c_70acc2edbcc4["AbstractKQueueDatagramChannel"]
  47400952_c561_3b43_4d14_a21536400da2 -->|defined in| 38b6ae38_f4e2_8750_9e5c_70acc2edbcc4
  7cbafd71_0401_6af2_a303_55c1e34e6c03["doWriteMessage()"]
  47400952_c561_3b43_4d14_a21536400da2 -->|calls| 7cbafd71_0401_6af2_a303_55c1e34e6c03
  style 47400952_c561_3b43_4d14_a21536400da2 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/AbstractKQueueDatagramChannel.java lines 39–75

    @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());
    }

Domain

Subdomains

Frequently Asked Questions

What does doWrite() do?
doWrite() is a function in the netty codebase, defined in transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/AbstractKQueueDatagramChannel.java.
Where is doWrite() defined?
doWrite() is defined in transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/AbstractKQueueDatagramChannel.java at line 39.
What does doWrite() call?
doWrite() calls 1 function(s): doWriteMessage.

Analyze Your Own Codebase

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

Try Supermodel Free