# Class Pipe.SourceChannel

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

All Implemented Interfaces:
  `Closeable, AutoCloseable, Channel, InterruptibleChannel, ReadableByteChannel, ScatteringByteChannel`

Enclosing class:
  `Pipe`

public abstract static class Pipe.SourceChannel extends AbstractSelectableChannel implements ReadableByteChannel, ScatteringByteChannel
A channel representing the readable end of a `Pipe`.

Since:
  1.4

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`SourceChannel(SelectorProvider provider)`
Constructs 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 ReadableByteChannel

`read`
Modifier and Type
Method
Description
`int`
`read(ByteBuffer dst)`
Reads a sequence of bytes from this channel into the given buffer.

### Methods declared in interface ScatteringByteChannel

`read, read`
Modifier and Type
Method
Description
`long`
`read(ByteBuffer[] dsts)`
Reads a sequence of bytes from this channel into the given buffers.
`long`
`read(ByteBuffer[] dsts, int offset, int length)`
Reads a sequence of bytes from this channel into a subsequence of the given buffers.

## Constructor Details

### SourceChannel

protected SourceChannel(SelectorProvider provider)
Constructs 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-source channels only support reading, so this method returns `SelectionKey.OP_READ`.

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