XNIO API 3.0.4.GA

org.xnio.channels
Interface StreamSinkChannel

All Superinterfaces:
Channel, Closeable, CloseableChannel, Configurable, GatheringByteChannel, InterruptibleChannel, SuspendableWriteChannel, WritableByteChannel
All Known Subinterfaces:
ConnectedSslStreamChannel, ConnectedStreamChannel, StreamChannel

public interface StreamSinkChannel
extends WritableByteChannel, GatheringByteChannel, SuspendableWriteChannel

A stream sink channel. This type of channel is a writable destination for bytes.


Method Summary
 ChannelListener.Setter<? extends StreamSinkChannel> getCloseSetter()
          Get the setter which can be used to change the close listener for this channel.
 ChannelListener.Setter<? extends StreamSinkChannel> getWriteSetter()
          Get the setter which can be used to change the write listener for this channel.
 long transferFrom(FileChannel src, long position, long count)
          Transfer bytes into this channel from the given file.
 long transferFrom(StreamSourceChannel source, long count, ByteBuffer throughBuffer)
          Transfers bytes from the given channel source.
 
Methods inherited from interface java.nio.channels.GatheringByteChannel
write, write
 
Methods inherited from interface java.nio.channels.WritableByteChannel
write
 
Methods inherited from interface org.xnio.channels.SuspendableWriteChannel
awaitWritable, awaitWritable, close, flush, getWriteThread, isWriteResumed, resumeWrites, shutdownWrites, suspendWrites, wakeupWrites
 
Methods inherited from interface org.xnio.channels.CloseableChannel
getWorker
 
Methods inherited from interface java.nio.channels.Channel
isOpen
 
Methods inherited from interface org.xnio.channels.Configurable
getOption, setOption, supportsOption
 

Method Detail

transferFrom

long transferFrom(FileChannel src,
                  long position,
                  long count)
                  throws IOException
Transfer bytes into this channel from the given file. Using this method in preference to FileChannel.transferTo(long, long, WritableByteChannel) may provide a performance advantage on some platforms.

Parameters:
src - the file to read from
position - the position within the file from which the transfer is to begin
count - the number of bytes to be transferred
Returns:
the number of bytes (possibly 0) that were actually transferred
Throws:
IOException - if an I/O error occurs

transferFrom

long transferFrom(StreamSourceChannel source,
                  long count,
                  ByteBuffer throughBuffer)
                  throws IOException
Transfers bytes from the given channel source. On some platforms, this may avoid copying bytes between user and kernel space. On other platforms, bytes are passed through the throughBuffer parameter's buffer space. On entry, throughBuffer will be cleared. On exit, the buffer will be flipped for emptying, and may be empty or may contain data. If this method returns a value less than count, then the remaining data in throughBuffer may contain data read from source which must be written to this channel to complete the operation. Note that using a direct buffer may provide an intermediate performance gain on platforms without zero-copy facilities.

Parameters:
source - the source to read from
count - the number of bytes to be transferred
throughBuffer - the buffer to copy through.
Returns:
the number of bytes (possibly 0) that were actually transferred, or -1 if the end of input was reached
Throws:
IOException - if an I/O error occurs

getWriteSetter

ChannelListener.Setter<? extends StreamSinkChannel> getWriteSetter()
Get the setter which can be used to change the write listener for this channel. When the listener is called, additional notifications are automatically suspended.

Specified by:
getWriteSetter in interface SuspendableWriteChannel
Returns:
the setter

getCloseSetter

ChannelListener.Setter<? extends StreamSinkChannel> getCloseSetter()
Get the setter which can be used to change the close listener for this channel. If the channel is already closed, then the listener will not be called.

Specified by:
getCloseSetter in interface CloseableChannel
Specified by:
getCloseSetter in interface SuspendableWriteChannel
Returns:
the setter

XNIO API 3.0.4.GA

Copyright © 2010 JBoss, a division of Red Hat, Inc.