XNIO API 3.0.4.GA

org.xnio.channels
Interface StreamSourceChannel

All Superinterfaces:
Channel, Closeable, CloseableChannel, Configurable, InterruptibleChannel, ReadableByteChannel, ScatteringByteChannel, SuspendableReadChannel
All Known Subinterfaces:
ConnectedSslStreamChannel, ConnectedStreamChannel, StreamChannel

public interface StreamSourceChannel
extends ReadableByteChannel, ScatteringByteChannel, SuspendableReadChannel

A stream source channel. This type of channel is a readable source for bytes.


Method Summary
 ChannelListener.Setter<? extends StreamSourceChannel> getCloseSetter()
          Get the setter which can be used to change the close listener for this channel.
 ChannelListener.Setter<? extends StreamSourceChannel> getReadSetter()
          Get the setter which can be used to change the read listener for this channel.
 long transferTo(long count, ByteBuffer throughBuffer, StreamSinkChannel target)
          Transfers bytes into the given channel target.
 long transferTo(long position, long count, FileChannel target)
          Transfers bytes into the given file from this channel.
 
Methods inherited from interface java.nio.channels.ScatteringByteChannel
read, read
 
Methods inherited from interface java.nio.channels.ReadableByteChannel
read
 
Methods inherited from interface org.xnio.channels.SuspendableReadChannel
awaitReadable, awaitReadable, getReadThread, isReadResumed, resumeReads, shutdownReads, suspendReads, wakeupReads
 
Methods inherited from interface org.xnio.channels.CloseableChannel
close, getWorker
 
Methods inherited from interface java.nio.channels.Channel
isOpen
 
Methods inherited from interface org.xnio.channels.Configurable
getOption, setOption, supportsOption
 

Method Detail

transferTo

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

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

transferTo

long transferTo(long count,
                ByteBuffer throughBuffer,
                StreamSinkChannel target)
                throws IOException
Transfers bytes into the given channel target. 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 possibly 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 this channel which must be written to target to complete the operation. Note that using a direct buffer may provide an intermediate performance gain on platforms without zero-copy facilities.

Parameters:
count - the number of bytes to be transferred
throughBuffer - the buffer to copy through.
target - the destination to write to
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

getReadSetter

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

Specified by:
getReadSetter in interface SuspendableReadChannel
Returns:
the setter

getCloseSetter

ChannelListener.Setter<? extends StreamSourceChannel> 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 SuspendableReadChannel
Returns:
the setter

XNIO API 3.0.4.GA

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