Home / Function/ doWrite() — netty Function Reference

doWrite() — netty Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  b39d151a_1b5e_b4c9_00be_5f3fea45bd5e["doWrite()"]
  3260bc77_49cf_96c1_baa9_dd1de8d3603d["AbstractNioMessageChannel"]
  b39d151a_1b5e_b4c9_00be_5f3fea45bd5e -->|defined in| 3260bc77_49cf_96c1_baa9_dd1de8d3603d
  5ee130a6_7b77_fff4_473e_feb1f2786d0f["doWriteMessage()"]
  b39d151a_1b5e_b4c9_00be_5f3fea45bd5e -->|calls| 5ee130a6_7b77_fff4_473e_feb1f2786d0f
  a859d149_53dc_be2e_3b04_8abd3f6e153e["continueOnWriteError()"]
  b39d151a_1b5e_b4c9_00be_5f3fea45bd5e -->|calls| a859d149_53dc_be2e_3b04_8abd3f6e153e
  style b39d151a_1b5e_b4c9_00be_5f3fea45bd5e fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/nio/AbstractNioMessageChannel.java lines 132–171

    @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() - 1; i >= 0; i--) {
                    if (doWriteMessage(msg, in)) {
                        done = true;
                        break;
                    }
                }

                if (done) {
                    maxMessagesPerWrite--;
                    in.remove();
                } else {
                    break;
                }
            } catch (Exception e) {
                if (continueOnWriteError()) {
                    maxMessagesPerWrite--;
                    in.remove(e);
                } else {
                    throw e;
                }
            }
        }
        if (in.isEmpty()) {
            // Wrote all messages.
            removeAndSubmit(NioIoOps.WRITE);
        } else {
            // Did not write all messages.
            addAndSubmit(NioIoOps.WRITE);
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does doWrite() do?
doWrite() is a function in the netty codebase, defined in transport/src/main/java/io/netty/channel/nio/AbstractNioMessageChannel.java.
Where is doWrite() defined?
doWrite() is defined in transport/src/main/java/io/netty/channel/nio/AbstractNioMessageChannel.java at line 132.
What does doWrite() call?
doWrite() calls 2 function(s): continueOnWriteError, doWriteMessage.

Analyze Your Own Codebase

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

Try Supermodel Free