More information: http://www.cs.berkeley.edu/~mdw/proj/seda/

seda.nbio
Class NonblockingOutputStream

java.lang.Object
  |
  +--java.io.OutputStream
        |
        +--seda.nbio.NonblockingOutputStream
Direct Known Subclasses:
NonblockingSocketOutputStream

public abstract class NonblockingOutputStream
extends java.io.OutputStream

A NonblockingOutputStream is an OutputStream with nonblocking semantics. The various write() methods are blocking, while the nbWrite() methods are nonblocking. It was necessary to introduce new methods as the original write() calls return void, and hence there is no way to indicate that only a portion of the request was written.


Constructor Summary
NonblockingOutputStream()
           
 
Method Summary
abstract  void close()
           
abstract  void flush()
          Flush the underlying output stream.
abstract  int nbWrite(byte b)
          Perform a non-blocking write of one byte to this output stream.
abstract  int nbWrite(byte[] b)
          Perform a nonblocking write of up to b.length bytes to the underlying stream.
abstract  int nbWrite(byte[] b, int off, int len)
          Perform a nonblocking write of up to len bytes to the underlying stream starting at offset off.
abstract  void write(byte[] b)
          Perform a blocking write of b.length bytes to the underlying stream.
abstract  void write(byte[] b, int off, int len)
          Perform a blocking write of len bytes to the underlying stream from the byte array b starting at offset off.
abstract  void write(int b)
          Perform a blocking write of one byte to this output stream.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NonblockingOutputStream

public NonblockingOutputStream()
Method Detail

write

public abstract void write(int b)
                    throws java.io.IOException
Perform a blocking write of one byte to this output stream. Throws an EOFException if the end of stream has been reached. Use nbWrite() to perform a non-blocking write of one byte.
Overrides:
write in class java.io.OutputStream

write

public abstract void write(byte[] b)
                    throws java.io.IOException
Perform a blocking write of b.length bytes to the underlying stream. Use nbWrite() to perform a nonblocking write.
Overrides:
write in class java.io.OutputStream

write

public abstract void write(byte[] b,
                           int off,
                           int len)
                    throws java.io.IOException
Perform a blocking write of len bytes to the underlying stream from the byte array b starting at offset off. Use nbWrite() to perform a nonblocking write.
Overrides:
write in class java.io.OutputStream

nbWrite

public abstract int nbWrite(byte b)
                     throws java.io.IOException
Perform a non-blocking write of one byte to this output stream. Returns 1 if the data was written or 0 if it could not be. Throws an EOFException if the end of the stream has been reached. Use write() to perform a blocking write of one byte.

nbWrite

public abstract int nbWrite(byte[] b)
                     throws java.io.IOException
Perform a nonblocking write of up to b.length bytes to the underlying stream. Returns the number of bytes written, or 0 if nothing was written. Use write() to perform a blocking write.

nbWrite

public abstract int nbWrite(byte[] b,
                            int off,
                            int len)
                     throws java.io.IOException
Perform a nonblocking write of up to len bytes to the underlying stream starting at offset off. Returns the number of bytes written, or 0 if nothing was written. Use write() to perform a blocking write.

flush

public abstract void flush()
Flush the underlying output stream. This is a blocking operation.
Overrides:
flush in class java.io.OutputStream

close

public abstract void close()
                    throws java.io.IOException
Overrides:
close in class java.io.OutputStream

More information: http://www.cs.berkeley.edu/~mdw/proj/seda/