Top Description Fields Constructors Methods
org.xnio.channels

public Class BlockingReadableByteChannel

extends Object
implements ScatteringByteChannel
Class Inheritance
All Implemented Interfaces
java.nio.channels.ScatteringByteChannel, java.nio.channels.ReadableByteChannel, java.nio.channels.Channel, java.io.Closeable, java.lang.AutoCloseable
Static Imports
org.xnio._private.Messages.msg

A blocking wrapper for a StreamSourceChannel. Read operations will block until some data may be transferred. Once any amount of data is read, the operation will return. If a read timeout is specified, then the read methods will throw a ReadTimeoutException if the timeout expires without reading any data.

Field Summary

Modifier and TypeField and Description
private final StreamSourceChannel
private volatile long

Constructor Summary

AccessConstructor and Description
public
BlockingReadableByteChannel(final StreamSourceChannel
the channel to forward I/O operations to
delegate
)

Construct a new instance.

public
BlockingReadableByteChannel(final StreamSourceChannel
the channel to forward I/O operations to
delegate
,
final long
the read timeout
readTimeout
,
final TimeUnit
the read timeout unit
readTimeoutUnit
)

Construct a new instance.

Method Summary

Modifier and TypeMethod and Description
public void
close()

Implements java.nio.channels.Channel.close.

Closes this channel.

public boolean
isOpen()

Implements java.nio.channels.Channel.isOpen.

Tells whether or not this channel is open.

public long

Returns:

the number of bytes actually read (will be greater than zero)
read
(final ByteBuffer[]
the destination buffers
dsts
,
final int
the offset into the destination buffer array
offset
,
final int
the number of buffers to read into
length
)

Implements java.nio.channels.ScatteringByteChannel.read.

Perform a blocking, scattering read operation.

public long

Returns:

the number of bytes actually read (will be greater than zero)
read
(final ByteBuffer[]
the destination buffers
dsts
)

Implements java.nio.channels.ScatteringByteChannel.read.

Perform a blocking, scattering read operation.

public int

Returns:

the number of bytes actually read (will be greater than zero)
read
(final ByteBuffer
the destination buffer
dst
)

Implements java.nio.channels.ReadableByteChannel.read.

Perform a blocking read operation.

public void
setReadTimeout(long
the read timeout
readTimeout
,
TimeUnit
the read timeout unit
readTimeoutUnit
)

Set the read timeout.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

delegateback to summary
private final StreamSourceChannel delegate
readTimeoutback to summary
private volatile long readTimeout

Constructor Detail

BlockingReadableByteChannelback to summary
public BlockingReadableByteChannel(final StreamSourceChannel delegate)

Construct a new instance.

Parameters
delegate:StreamSourceChannel

the channel to forward I/O operations to

BlockingReadableByteChannelback to summary
public BlockingReadableByteChannel(final StreamSourceChannel delegate, final long readTimeout, final TimeUnit readTimeoutUnit)

Construct a new instance.

Parameters
delegate:StreamSourceChannel

the channel to forward I/O operations to

readTimeout:long

the read timeout

readTimeoutUnit:TimeUnit

the read timeout unit

Method Detail

closeback to summary
public void close() throws IOException

Implements java.nio.channels.Channel.close.

Doc from java.nio.channels.Channel.close.

Closes this channel.

After a channel is closed, any further attempt to invoke I/O operations upon it will cause a ClosedChannelException to be thrown.

If this channel is already closed then invoking this method has no effect.

This method may be invoked at any time. If some other thread has already invoked it, however, then another invocation will block until the first invocation is complete, after which it will return without effect.

Exceptions
IOException:
If an I/O error occurs
isOpenback to summary
public boolean isOpen()

Implements java.nio.channels.Channel.isOpen.

Doc from java.nio.channels.Channel.isOpen.

Tells whether or not this channel is open.

Returns:boolean

true if, and only if, this channel is open

readback to summary
public long read(final ByteBuffer[] dsts, final int offset, final int length) throws IOException

Implements java.nio.channels.ScatteringByteChannel.read.

Perform a blocking, scattering read operation.

Parameters
dsts:ByteBuffer[]

the destination buffers

offset:int

the offset into the destination buffer array

length:int

the number of buffers to read into

Returns:long

the number of bytes actually read (will be greater than zero)

Exceptions
IOException:
if an I/O error occurs
readback to summary
public long read(final ByteBuffer[] dsts) throws IOException

Implements java.nio.channels.ScatteringByteChannel.read.

Perform a blocking, scattering read operation.

Parameters
dsts:ByteBuffer[]

the destination buffers

Returns:long

the number of bytes actually read (will be greater than zero)

Exceptions
IOException:
if an I/O error occurs
readback to summary
public int read(final ByteBuffer dst) throws IOException

Implements java.nio.channels.ReadableByteChannel.read.

Perform a blocking read operation.

Parameters
dst:ByteBuffer

the destination buffer

Returns:int

the number of bytes actually read (will be greater than zero)

Exceptions
IOException:
if an I/O error occurs
setReadTimeoutback to summary
public void setReadTimeout(long readTimeout, TimeUnit readTimeoutUnit)

Set the read timeout.

Parameters
readTimeout:long

the read timeout

readTimeoutUnit:TimeUnit

the read timeout unit