Package org.apache.tomcat.util.net

# Class SocketWrapperBase.OperationState<A>

java.lang.Object
org.apache.tomcat.util.net.SocketWrapperBase.OperationState<A>

All Implemented Interfaces:
  `Runnable`

Enclosing class:
  SocketWrapperBase<E>

protected abstract class SocketWrapperBase.OperationState<A> extends Object implements Runnable
Internal state tracker for vectored operations.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final A`
  `attachment`
  `protected final SocketWrapperBase.BlockingMode`
  `block`
  `protected final ByteBuffer[]`
  `buffers`
  `protected final AtomicBoolean`
  `callHandler`
  `protected final SocketWrapperBase.CompletionCheck`
  `check`
  `protected final SocketWrapperBase<E>.VectoredIOCompletionHandler<A>`
  `completion`
  `protected boolean`
  `completionDone`
  `protected final CompletionHandler<Long,? super A>`
  `handler`
  `protected final int`
  `length`
  `protected long`
  `nBytes`
  `protected final int`
  `offset`
  `protected final boolean`
  `read`
  `protected final Semaphore`
  `semaphore`
  `protected SocketWrapperBase.CompletionState`
  `state`
  `protected final long`
  `timeout`
  `protected final TimeUnit`
  `unit`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `OperationState(boolean read, ByteBuffer[] buffers, int offset, int length, SocketWrapperBase.BlockingMode block, long timeout, TimeUnit unit, A attachment, SocketWrapperBase.CompletionCheck check, CompletionHandler<Long,? super A> handler, Semaphore semaphore, SocketWrapperBase<E>.VectoredIOCompletionHandler<A> completion)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `end()`
  End the operation.
  `protected boolean`
  `hasOutboundRemaining()`
  `protected abstract boolean`
  `isInline()`
  `protected boolean`
  `process()`
  Process the operation using the connector executor.
  `protected void`
  `start()`
  Start the operation, this will typically call run.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface java.lang.Runnable

  `run`

- ## Field Details

  - ### read

    protected final boolean read

  - ### buffers

    protected final ByteBuffer[] buffers

  - ### offset

    protected final int offset

  - ### length

    protected final int length

  - ### attachment

    protected final A attachment

  - ### timeout

    protected final long timeout

  - ### unit

    protected final TimeUnit unit

  - ### block

    protected final SocketWrapperBase.BlockingMode block

  - ### check

    protected final SocketWrapperBase.CompletionCheck check

  - ### handler

    protected final CompletionHandler<Long,? super A> handler

  - ### semaphore

    protected final Semaphore semaphore

  - ### completion

    protected final SocketWrapperBase<E>.VectoredIOCompletionHandler<A> completion

  - ### callHandler

    protected final AtomicBoolean callHandler

  - ### nBytes

    protected volatile long nBytes

  - ### state

    protected volatile SocketWrapperBase.CompletionState state

  - ### completionDone

    protected boolean completionDone

- ## Constructor Details

  - ### OperationState

    protected OperationState(boolean read, ByteBuffer[] buffers, int offset, int length, SocketWrapperBase.BlockingMode block, long timeout, TimeUnit unit, A attachment, SocketWrapperBase.CompletionCheck check, CompletionHandler<Long,? super A> handler, Semaphore semaphore, SocketWrapperBase<E>.VectoredIOCompletionHandler<A> completion)

- ## Method Details

  - ### isInline

    protected abstract boolean isInline()
    Returns:
      true if the operation is still inline, false if the operation is running on a thread that is not the original caller

  - ### hasOutboundRemaining

    protected boolean hasOutboundRemaining()

  - ### process

    protected boolean process()
    Process the operation using the connector executor.
    Returns:
      true if the operation was accepted, false if the executor rejected execution

  - ### start

    protected void start()
    Start the operation, this will typically call run.

  - ### end

    protected void end()
    End the operation.