org.apache.karaf.shell.wrapper
Class StreamPumper

java.lang.Object
  extended by org.apache.karaf.shell.wrapper.StreamPumper
All Implemented Interfaces:
java.lang.Runnable

public class StreamPumper
extends java.lang.Object
implements java.lang.Runnable

Copies all data from an input stream to an output stream.

Version:
$Rev: 705608 $ $Date: 2008-10-17 15:28:45 +0200 (Fri, 17 Oct 2008) $

Constructor Summary
StreamPumper(java.io.InputStream in, java.io.OutputStream out)
          Create a new stream pumper.
StreamPumper(java.io.InputStream in, java.io.OutputStream out, boolean closeWhenExhausted)
          Create a new stream pumper.
 
Method Summary
 int getBufferSize()
          Get the size in bytes of the read buffer.
 Exception getException()
          Get the exception encountered, if any.
 boolean isFinished()
          Tells whether the end of the stream has been reached.
 void run()
          Copies data from the input stream to the output stream.
 void setAutoflush(boolean autoflush)
          Set whether data should be flushed through to the output stream.
 void setBufferSize(int bufferSize)
          Set the size in bytes of the read buffer.
 void stop()
          Stop the pumper as soon as possible.
 void waitFor()
          This method blocks until the stream pumper finishes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StreamPumper

public StreamPumper(java.io.InputStream in,
                    java.io.OutputStream out,
                    boolean closeWhenExhausted)
Create a new stream pumper.

Parameters:
in - Input stream to read data from
out - Output stream to write data to.
closeWhenExhausted - If true, the output stream will be closed when the input is exhausted.

StreamPumper

public StreamPumper(java.io.InputStream in,
                    java.io.OutputStream out)
Create a new stream pumper.

Parameters:
in - Input stream to read data from
out - Output stream to write data to.
Method Detail

setAutoflush

public void setAutoflush(boolean autoflush)
Set whether data should be flushed through to the output stream.

Parameters:
autoflush - If true, push through data; if false, let it be buffered

run

public void run()
Copies data from the input stream to the output stream. Terminates as soon as the input stream is closed or an error occurs.

Specified by:
run in interface java.lang.Runnable

isFinished

public boolean isFinished()
Tells whether the end of the stream has been reached.

Returns:
true If the stream has been exhausted.

waitFor

public void waitFor()
             throws java.lang.InterruptedException
This method blocks until the stream pumper finishes.

Throws:
java.lang.InterruptedException
See Also:
isFinished()

setBufferSize

public void setBufferSize(int bufferSize)
Set the size in bytes of the read buffer.

Parameters:
bufferSize - the buffer size to use.
Throws:
java.lang.IllegalStateException - if the StreamPumper is already running.

getBufferSize

public int getBufferSize()
Get the size in bytes of the read buffer.

Returns:
The size of the read buffer.

getException

public Exception getException()
Get the exception encountered, if any.

Returns:
The Exception encountered; or null if there was none.

stop

public void stop()
Stop the pumper as soon as possible. Note that it may continue to block on the input stream but it will really stop the thread as soon as it gets EOF or any byte, and it will be marked as finished.



Copyright © 2007-2011 Apache Software Foundation. All Rights Reserved.