Top Description Fields Constructors Methods
org.xnio.channels

public Class BlockingWritableByteChannel

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

A blocking wrapper for a StreamChannel. Write operations will block until some data may be transferred. Once any amount of data is written, the operation will return. If a write timeout is specified, then the write methods will throw a WriteTimeoutException if the timeout expires without writing any data.

Field Summary

Modifier and TypeField and Description
private final StreamSinkChannel
private volatile long

Constructor Summary

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

Construct a new instance.

public
BlockingWritableByteChannel(final StreamSinkChannel
the channel to forward I/O operations to
delegate
,
final long
the write timeout
writeTimeout
,
final TimeUnit
the write timeout unit
writeTimeoutUnit
)

Construct a new instance.

Method Summary

Modifier and TypeMethod and Description
public void
close()

Implements java.nio.channels.Channel.close.

Closes this channel.

public void
flush()

Implements java.io.Flushable.flush.

Flushes this stream by writing any buffered output to the underlying stream.

public boolean
isOpen()

Implements java.nio.channels.Channel.isOpen.

Tells whether or not this channel is open.

public void
setWriteTimeout(long
the write timeout
writeTimeout
,
TimeUnit
the write timeout unit
writeTimeoutUnit
)

Set the write timeout.

public long

Returns:

the number of bytes actually written (will be greater than zero)
write
(final ByteBuffer[]
the source buffers
srcs
,
final int
the offset into the destination buffer array
offset
,
final int
the number of buffers to write from
length
)

Implements java.nio.channels.GatheringByteChannel.write.

Perform a blocking, gathering write operation.

public long

Returns:

the number of bytes actually written (will be greater than zero)
write
(final ByteBuffer[]
the source buffers
srcs
)

Implements java.nio.channels.GatheringByteChannel.write.

Perform a blocking, gathering write operation.

public int

Returns:

the number of bytes actually written (will be greater than zero)
write
(final ByteBuffer
the source buffer
src
)

Implements java.nio.channels.WritableByteChannel.write.

Perform a blocking write operation.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

delegateback to summary
private final StreamSinkChannel delegate
writeTimeoutback to summary
private volatile long writeTimeout

Constructor Detail

BlockingWritableByteChannelback to summary
public BlockingWritableByteChannel(final StreamSinkChannel delegate)

Construct a new instance.

Parameters
delegate:StreamSinkChannel

the channel to forward I/O operations to

BlockingWritableByteChannelback to summary
public BlockingWritableByteChannel(final StreamSinkChannel delegate, final long writeTimeout, final TimeUnit writeTimeoutUnit)

Construct a new instance.

Parameters
delegate:StreamSinkChannel

the channel to forward I/O operations to

writeTimeout:long

the write timeout

writeTimeoutUnit:TimeUnit

the write 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
flushback to summary
public void flush() throws IOException

Implements java.io.Flushable.flush.

Doc from java.io.Flushable.flush.

Flushes this stream by writing any buffered output to the underlying stream.

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

setWriteTimeoutback to summary
public void setWriteTimeout(long writeTimeout, TimeUnit writeTimeoutUnit)

Set the write timeout.

Parameters
writeTimeout:long

the write timeout

writeTimeoutUnit:TimeUnit

the write timeout unit

writeback to summary
public long write(final ByteBuffer[] srcs, final int offset, final int length) throws IOException

Implements java.nio.channels.GatheringByteChannel.write.

Perform a blocking, gathering write operation.

Parameters
srcs:ByteBuffer[]

the source buffers

offset:int

the offset into the destination buffer array

length:int

the number of buffers to write from

Returns:long

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

Exceptions
IOException:
if an I/O error occurs
writeback to summary
public long write(final ByteBuffer[] srcs) throws IOException

Implements java.nio.channels.GatheringByteChannel.write.

Perform a blocking, gathering write operation.

Parameters
srcs:ByteBuffer[]

the source buffers

Returns:long

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

Exceptions
IOException:
if an I/O error occurs
writeback to summary
public int write(final ByteBuffer src) throws IOException

Implements java.nio.channels.WritableByteChannel.write.

Perform a blocking write operation.

Parameters
src:ByteBuffer

the source buffer

Returns:int

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

Exceptions
IOException:
if an I/O error occurs