XNIO API 3.0.7.GA

org.xnio.streams
Class ChannelOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by org.xnio.streams.ChannelOutputStream
All Implemented Interfaces:
Closeable, Flushable

public class ChannelOutputStream
extends OutputStream

An output stream which writes to a stream sink channel. All write operations are directly performed upon the channel, so for optimal performance, a buffering output stream should be used to wrap this class.

Since:
1.2

Field Summary
protected  StreamSinkChannel channel
           
protected  boolean closed
           
protected  long timeout
           
 
Constructor Summary
ChannelOutputStream(StreamSinkChannel channel)
          Construct a new instance.
ChannelOutputStream(StreamSinkChannel channel, long timeout, TimeUnit unit)
          Construct a new instance.
 
Method Summary
 void close()
          
 void flush()
          
 long getWriteTimeout(TimeUnit unit)
          Get the write timeout.
 void setWriteTimeout(long timeout, TimeUnit unit)
          Set the write timeout.
 void write(byte[] b)
          
 void write(byte[] b, int off, int len)
          
 void write(int b)
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

channel

protected final StreamSinkChannel channel

closed

protected volatile boolean closed

timeout

protected volatile long timeout
Constructor Detail

ChannelOutputStream

public ChannelOutputStream(StreamSinkChannel channel)
Construct a new instance. No write timeout is configured.

Parameters:
channel - the channel to wrap

ChannelOutputStream

public ChannelOutputStream(StreamSinkChannel channel,
                           long timeout,
                           TimeUnit unit)
Construct a new instance.

Parameters:
channel - the channel to wrap
timeout - the write timeout
unit - the write timeout units
Method Detail

getWriteTimeout

public long getWriteTimeout(TimeUnit unit)
Get the write timeout.

Parameters:
unit - the time unit
Returns:
the timeout in the given unit

setWriteTimeout

public void setWriteTimeout(long timeout,
                            TimeUnit unit)
Set the write timeout. Does not affect write operations in progress.

Parameters:
timeout - the write timeout, or 0 for none
unit - the time unit

write

public void write(int b)
           throws IOException

Specified by:
write in class OutputStream
Throws:
IOException

write

public void write(byte[] b)
           throws IOException

Overrides:
write in class OutputStream
Throws:
IOException

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException

Overrides:
write in class OutputStream
Throws:
IOException

flush

public void flush()
           throws IOException

Specified by:
flush in interface Flushable
Overrides:
flush in class OutputStream
Throws:
IOException

close

public void close()
           throws IOException

Specified by:
close in interface Closeable
Overrides:
close in class OutputStream
Throws:
IOException

XNIO API 3.0.7.GA

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