Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Protected Ctors](https://developer.android.com/reference/java/nio/channels/Pipe.SourceChannel#proctors) \| [Methods](https://developer.android.com/reference/java/nio/channels/Pipe.SourceChannel#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/nio/channels/Pipe.SourceChannel#inhmethods)

# Pipe.SourceChannel

` public static abstract class Pipe.SourceChannel `   
` ` ` ` ` ` ` extends https://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel ` ` implements https://developer.android.com/reference/java/nio/channels/ReadableByteChannel, https://developer.android.com/reference/java/nio/channels/ScatteringByteChannel `

|---|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) |||||
| ↳ | [java.nio.channels.spi.AbstractInterruptibleChannel](https://developer.android.com/reference/java/nio/channels/spi/AbstractInterruptibleChannel) ||||
|   | ↳ | [java.nio.channels.SelectableChannel](https://developer.android.com/reference/java/nio/channels/SelectableChannel) |||
|   |   | ↳ | [java.nio.channels.spi.AbstractSelectableChannel](https://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel) ||
|   |   |   | ↳ | java.nio.channels.Pipe.SourceChannel |

<br />

*** ** * ** ***

A channel representing the readable end of a `https://developer.android.com/reference/java/nio/channels/Pipe`.

## Summary

| ### Protected constructors ||
|---|---|
| ` https://developer.android.com/reference/java/nio/channels/Pipe.SourceChannel#SourceChannel(java.nio.channels.spi.SelectorProvider)(https://developer.android.com/reference/java/nio/channels/spi/SelectorProvider provider) ` Constructs a new instance of this class. |

| ### Public methods ||
|---|---|
| ` final int` | ` https://developer.android.com/reference/java/nio/channels/Pipe.SourceChannel#validOps()() ` Returns an operation set identifying this channel's supported operations. |

### Inherited methods

From class ` https://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel ` ` final https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel#blockingLock()() `

Retrieves the object upon which the `https://developer.android.com/reference/java/nio/channels/SelectableChannel#configureBlocking(boolean)` and `https://developer.android.com/reference/java/nio/channels/SelectableChannel#register(java.nio.channels.Selector,%20int)` methods synchronize.
` final https://developer.android.com/reference/java/nio/channels/SelectableChannel` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel#configureBlocking(boolean)(boolean block) `

Adjusts this channel's blocking mode.
` final void` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel#implCloseChannel()() `

Closes this channel.
` abstract void` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel#implCloseSelectableChannel()() `

Closes this selectable channel.
` abstract void` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel#implConfigureBlocking(boolean)(boolean block) `

Adjusts this channel's blocking mode.
` final boolean` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel#isBlocking()() `

Tells whether or not every I/O operation on this channel will block until it completes.
` final boolean` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel#isRegistered()() `

Tells whether or not this channel is currently registered with any selectors.
` final https://developer.android.com/reference/java/nio/channels/SelectionKey` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel#keyFor(java.nio.channels.Selector)(https://developer.android.com/reference/java/nio/channels/Selector sel) `

Retrieves the key representing the channel's registration with the given selector.
` final https://developer.android.com/reference/java/nio/channels/spi/SelectorProvider` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel#provider()() `

Returns the provider that created this channel.
` final https://developer.android.com/reference/java/nio/channels/SelectionKey` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractSelectableChannel#register(java.nio.channels.Selector,%20int,%20java.lang.Object)(https://developer.android.com/reference/java/nio/channels/Selector sel, int ops, https://developer.android.com/reference/java/lang/Object att) `

Registers this channel with the given selector, returning a selection key.
From class ` https://developer.android.com/reference/java/nio/channels/SelectableChannel ` ` abstract https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/nio/channels/SelectableChannel#blockingLock()() `

Retrieves the object upon which the `https://developer.android.com/reference/java/nio/channels/SelectableChannel#configureBlocking(boolean)` and `https://developer.android.com/reference/java/nio/channels/SelectableChannel#register(java.nio.channels.Selector,%20int)` methods synchronize.
` abstract https://developer.android.com/reference/java/nio/channels/SelectableChannel` ` https://developer.android.com/reference/java/nio/channels/SelectableChannel#configureBlocking(boolean)(boolean block) `

Adjusts this channel's blocking mode.
` abstract boolean` ` https://developer.android.com/reference/java/nio/channels/SelectableChannel#isBlocking()() `

Tells whether or not every I/O operation on this channel will block until it completes.
` abstract boolean` ` https://developer.android.com/reference/java/nio/channels/SelectableChannel#isRegistered()() `

Tells whether or not this channel is currently registered with any selectors.
` abstract https://developer.android.com/reference/java/nio/channels/SelectionKey` ` https://developer.android.com/reference/java/nio/channels/SelectableChannel#keyFor(java.nio.channels.Selector)(https://developer.android.com/reference/java/nio/channels/Selector sel) `

Retrieves the key representing the channel's registration with the given selector.
` abstract https://developer.android.com/reference/java/nio/channels/spi/SelectorProvider` ` https://developer.android.com/reference/java/nio/channels/SelectableChannel#provider()() `

Returns the provider that created this channel.
` abstract https://developer.android.com/reference/java/nio/channels/SelectionKey` ` https://developer.android.com/reference/java/nio/channels/SelectableChannel#register(java.nio.channels.Selector,%20int,%20java.lang.Object)(https://developer.android.com/reference/java/nio/channels/Selector sel, int ops, https://developer.android.com/reference/java/lang/Object att) `

Registers this channel with the given selector, returning a selection key.
` final https://developer.android.com/reference/java/nio/channels/SelectionKey` ` https://developer.android.com/reference/java/nio/channels/SelectableChannel#register(java.nio.channels.Selector,%20int)(https://developer.android.com/reference/java/nio/channels/Selector sel, int ops) `

Registers this channel with the given selector, returning a selection key.
` abstract int` ` https://developer.android.com/reference/java/nio/channels/SelectableChannel#validOps()() `

Returns an [operation set](https://developer.android.com/reference/java/nio/channels/SelectionKey#opsets) identifying this channel's supported operations.
From class ` https://developer.android.com/reference/java/nio/channels/spi/AbstractInterruptibleChannel ` ` final void` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractInterruptibleChannel#begin()() `

Marks the beginning of an I/O operation that might block indefinitely.
` final void` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractInterruptibleChannel#close()() `

Closes this channel.
` final void` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractInterruptibleChannel#end(boolean)(boolean completed) `

Marks the end of an I/O operation that might block indefinitely.
` abstract void` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractInterruptibleChannel#implCloseChannel()() `

Closes this channel.
` final boolean` ` https://developer.android.com/reference/java/nio/channels/spi/AbstractInterruptibleChannel#isOpen()() `

Tells whether or not this channel is open.
From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(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.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(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` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.
From interface ` https://developer.android.com/reference/java/nio/channels/Channel ` ` abstract void` ` https://developer.android.com/reference/java/nio/channels/Channel#close()() `

Closes this channel.
` abstract boolean` ` https://developer.android.com/reference/java/nio/channels/Channel#isOpen()() `

Tells whether or not this channel is open.
From interface ` https://developer.android.com/reference/java/nio/channels/InterruptibleChannel ` ` abstract void` ` https://developer.android.com/reference/java/nio/channels/InterruptibleChannel#close()() `

Closes this channel.
From interface ` https://developer.android.com/reference/java/nio/channels/ReadableByteChannel ` ` abstract int` ` https://developer.android.com/reference/java/nio/channels/ReadableByteChannel#read(java.nio.ByteBuffer)(https://developer.android.com/reference/java/nio/ByteBuffer dst) `

Reads a sequence of bytes from this channel into the given buffer.
From interface ` https://developer.android.com/reference/java/nio/channels/ScatteringByteChannel ` ` abstract long` ` https://developer.android.com/reference/java/nio/channels/ScatteringByteChannel#read(java.nio.ByteBuffer[],%20int,%20int)(https://developer.android.com/reference/java/nio/ByteBuffer dsts, int offset, int length) `

Reads a sequence of bytes from this channel into a subsequence of the given buffers.
` abstract long` ` https://developer.android.com/reference/java/nio/channels/ScatteringByteChannel#read(java.nio.ByteBuffer[])(https://developer.android.com/reference/java/nio/ByteBuffer dsts) `

Reads a sequence of bytes from this channel into the given buffers.
From interface ` https://developer.android.com/reference/java/io/Closeable ` ` abstract void` ` https://developer.android.com/reference/java/io/Closeable#close()() `

Closes this stream and releases any system resources associated with it.
From interface ` https://developer.android.com/reference/java/lang/AutoCloseable ` ` abstract void` ` https://developer.android.com/reference/java/lang/AutoCloseable#close()() `

Closes this resource, relinquishing any underlying resources.

## Protected constructors

### SourceChannel

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
protected SourceChannel (SelectorProvider provider)
```

Constructs a new instance of this class.

<br />

| Parameters ||
|---|---|
| `provider` | `SelectorProvider`: The selector provider <br /> |

## Public methods

### validOps

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final int validOps ()
```

Returns an operation set identifying this channel's supported operations.

Pipe-source channels only support reading, so this method returns `https://developer.android.com/reference/java/nio/channels/SelectionKey#OP_READ`.

<br />

<br />

| Returns ||
|---|---|
| `int` | The valid-operation set <br /> |