Home / Class/ SpliceOutTask Class — netty Architecture

SpliceOutTask Class — netty Architecture

Architecture documentation for the SpliceOutTask class in AbstractEpollStreamChannel.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  7aa2d14f_5002_748c_af47_dd95afb75a76["SpliceOutTask"]
  70734405_31fd_71db_63bc_2114f3b39591["AbstractEpollStreamChannel.java"]
  7aa2d14f_5002_748c_af47_dd95afb75a76 -->|defined in| 70734405_31fd_71db_63bc_2114f3b39591
  b7509f2a_dd40_06f2_0dc7_c50773120f9c["SpliceOutTask()"]
  7aa2d14f_5002_748c_af47_dd95afb75a76 -->|method| b7509f2a_dd40_06f2_0dc7_c50773120f9c
  b5e0ce3a_dc95_3eb7_e031_00e22633d8c2["spliceOut()"]
  7aa2d14f_5002_748c_af47_dd95afb75a76 -->|method| b5e0ce3a_dc95_3eb7_e031_00e22633d8c2

Relationship Graph

Source Code

transport-classes-epoll/src/main/java/io/netty/channel/epoll/AbstractEpollStreamChannel.java lines 965–997

    private final class SpliceOutTask {
        private final AbstractEpollStreamChannel ch;
        private final boolean autoRead;
        private int len;

        SpliceOutTask(AbstractEpollStreamChannel ch, int len, boolean autoRead) {
            this.ch = ch;
            this.len = len;
            this.autoRead = autoRead;
        }

        public boolean spliceOut() throws Exception {
            assert ch.eventLoop().inEventLoop();
            try {
                int splicedOut = Native.splice(ch.pipeIn.intValue(), -1, ch.socket.intValue(), -1, len);
                len -= splicedOut;
                if (len == 0) {
                    if (autoRead) {
                        // AutoRead was used and we spliced everything so start reading again
                        config().setAutoRead(true);
                    }
                    return true;
                }
                return false;
            } catch (IOException e) {
                if (autoRead) {
                    // AutoRead was used and we spliced everything so start reading again
                    config().setAutoRead(true);
                }
                throw e;
            }
        }
    }

Frequently Asked Questions

What is the SpliceOutTask class?
SpliceOutTask is a class in the netty codebase, defined in transport-classes-epoll/src/main/java/io/netty/channel/epoll/AbstractEpollStreamChannel.java.
Where is SpliceOutTask defined?
SpliceOutTask is defined in transport-classes-epoll/src/main/java/io/netty/channel/epoll/AbstractEpollStreamChannel.java at line 965.

Analyze Your Own Codebase

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

Try Supermodel Free