# Class Pipe.SinkChannel

java.lang.Object
java.nio.channels.spi.AbstractInterruptibleChannel
java.nio.channels.SelectableChannel
java.nio.channels.spi.AbstractSelectableChannel
java.nio.channels.Pipe.SinkChannel

All Implemented Interfaces:
  `Closeable, AutoCloseable, Channel, GatheringByteChannel, InterruptibleChannel, WritableByteChannel`

Enclosing class:
  `Pipe`

public abstract static class Pipe.SinkChannel extends AbstractSelectableChannel implements WritableByteChannel, GatheringByteChannel
A channel representing the writable end of a `Pipe`.

Since:
  1.4

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `SinkChannel(SelectorProvider provider)`
  Initializes a new instance of this class.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final int`
  `validOps()`
  Returns an operation set identifying this channel's supported operations.

  ### Methods declared in class AbstractSelectableChannel

  `blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register`
  Modifier and Type
  Method
  Description
  `final Object`
  `blockingLock()`
  Retrieves the object upon which the `configureBlocking` and `register` methods synchronize.
  `final SelectableChannel`
  `configureBlocking(boolean block)`
  Adjusts this channel's blocking mode.
  `protected final void`
  `implCloseChannel()`
  Closes this channel.
  `protected abstract void`
  `implCloseSelectableChannel()`
  Closes this selectable channel.
  `protected abstract void`
  `implConfigureBlocking(boolean block)`
  Adjusts this channel's blocking mode.
  `final boolean`
  `isBlocking()`
  Tells whether or not every I/O operation on this channel will block until it completes.
  `final boolean`
  `isRegistered()`
  Tells whether or not this channel is currently registered with any selectors.
  `final SelectionKey`
  `keyFor(Selector sel)`
  Retrieves the key representing the channel's registration with the given selector.
  `final SelectorProvider`
  `provider()`
  Returns the provider that created this channel.
  `final SelectionKey`
  `register(Selector sel, int ops, Object att)`
  Registers this channel with the given selector, returning a selection key.

  ### Methods declared in class SelectableChannel

  `register`
  Modifier and Type
  Method
  Description
  `final SelectionKey`
  `register(Selector sel, int ops)`
  Registers this channel with the given selector, returning a selection key.

  ### Methods declared in class AbstractInterruptibleChannel

  `begin, close, end, isOpen`
  Modifier and Type
  Method
  Description
  `protected final void`
  `begin()`
  Marks the beginning of an I/O operation that might block indefinitely.
  `final void`
  `close()`
  Closes this channel.
  `protected final void`
  `end(boolean completed)`
  Marks the end of an I/O operation that might block indefinitely.
  `final boolean`
  `isOpen()`
  Tells whether or not this channel is open.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

  ### Methods declared in interface GatheringByteChannel

  `write, write`
  Modifier and Type
  Method
  Description
  `long`
  `write(ByteBuffer[] srcs)`
  Writes a sequence of bytes to this channel from the given buffers.
  `long`
  `write(ByteBuffer[] srcs, int offset, int length)`
  Writes a sequence of bytes to this channel from a subsequence of the given buffers.

  ### Methods declared in interface WritableByteChannel

  `write`
  Modifier and Type
  Method
  Description
  `int`
  `write(ByteBuffer src)`
  Writes a sequence of bytes to this channel from the given buffer.

- ## Constructor Details

  - ### SinkChannel

    protected SinkChannel(SelectorProvider provider)
    Initializes a new instance of this class.
    Parameters:
      `provider` - The selector provider

- ## Method Details

  - ### validOps

    public final int validOps()
    Returns an operation set identifying this channel's supported operations.

    Pipe-sink channels only support writing, so this method returns `SelectionKey.OP_WRITE`.

    Specified by:
      `validOps` in class `SelectableChannel`
    Returns:
      The valid-operation set