org.apache.cxf.io
Class AbstractThresholdOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by org.apache.cxf.io.AbstractWrappedOutputStream
          extended by org.apache.cxf.io.AbstractThresholdOutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable
Direct Known Subclasses:
HTTPConduit.WrappedOutputStream

public abstract class AbstractThresholdOutputStream
extends AbstractWrappedOutputStream

Outputstream that will buffer a certain amount before writing anything to the underlying stream. When the threshold is reached, provides a callback point to allow the subclass to update headers, replace/set the output stream, etc... Also provides a callback for when the stream is closed without it reaching the threshold.


Field Summary
protected  LoadingByteArrayOutputStream buffer
           
protected  int threshold
           
 
Fields inherited from class org.apache.cxf.io.AbstractWrappedOutputStream
wrappedStream, written
 
Constructor Summary
AbstractThresholdOutputStream(int threshold)
           
 
Method Summary
 void close()
           
abstract  void thresholdNotReached()
           
abstract  void thresholdReached()
           
 void unBuffer()
           
 void write(byte[] b, int off, int len)
           
 void write(int b)
           
 
Methods inherited from class org.apache.cxf.io.AbstractWrappedOutputStream
flush, onFirstWrite, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

threshold

protected int threshold

buffer

protected LoadingByteArrayOutputStream buffer
Constructor Detail

AbstractThresholdOutputStream

public AbstractThresholdOutputStream(int threshold)
Method Detail

thresholdReached

public abstract void thresholdReached()
                               throws java.io.IOException
Throws:
java.io.IOException

thresholdNotReached

public abstract void thresholdNotReached()
                                  throws java.io.IOException
Throws:
java.io.IOException

write

public void write(byte[] b,
                  int off,
                  int len)
           throws java.io.IOException
Overrides:
write in class AbstractWrappedOutputStream
Throws:
java.io.IOException

write

public void write(int b)
           throws java.io.IOException
Overrides:
write in class AbstractWrappedOutputStream
Throws:
java.io.IOException

unBuffer

public void unBuffer()
              throws java.io.IOException
Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException
Specified by:
close in interface java.io.Closeable
Overrides:
close in class AbstractWrappedOutputStream
Throws:
java.io.IOException


Apache CXF