org.jets3t.service.io
Class ProgressMonitoredInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by org.jets3t.service.io.ProgressMonitoredInputStream
All Implemented Interfaces:
java.io.Closeable, InputStreamWrapper

public class ProgressMonitoredInputStream
extends java.io.InputStream
implements InputStreamWrapper

Input stream wrapper that tracks the number of bytes that have been read through the stream. When data is read through this stream the count of bytes is increased and the associated BytesProgressWatcher object is notified of the count of bytes read.


Constructor Summary
ProgressMonitoredInputStream(java.io.InputStream inputStream, BytesProgressWatcher progressWatcher)
          Construts the input stream around an underlying stream and sends notification messages to a progress watcher when bytes are read from the stream.
 
Method Summary
 int available()
           
 void close()
           
 java.io.InputStream getWrappedInputStream()
           
 int read()
           
 int read(byte[] b)
           
 int read(byte[] b, int off, int len)
           
 void resetProgressMonitor()
           
 void sendNotificationUpdate(long bytesTransmitted)
          Checks how many bytes have been transferred since the last notification, and sends a notification message if this number exceeds the minimum bytes transferred value.
 
Methods inherited from class java.io.InputStream
mark, markSupported, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProgressMonitoredInputStream

public ProgressMonitoredInputStream(java.io.InputStream inputStream,
                                    BytesProgressWatcher progressWatcher)
Construts the input stream around an underlying stream and sends notification messages to a progress watcher when bytes are read from the stream.

Parameters:
inputStream - the input stream to wrap, whose byte transfer count will be monitored.
progressWatcher - a watcher object that stores information about the bytes read from a stream, and allows calculations to be perfomed using this information.
Method Detail

sendNotificationUpdate

public void sendNotificationUpdate(long bytesTransmitted)
Checks how many bytes have been transferred since the last notification, and sends a notification message if this number exceeds the minimum bytes transferred value.

Parameters:
bytesTransmitted -

resetProgressMonitor

public void resetProgressMonitor()

read

public int read()
         throws java.io.IOException
Specified by:
read in class java.io.InputStream
Throws:
java.io.IOException

read

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

read

public int read(byte[] b)
         throws java.io.IOException
Overrides:
read in class java.io.InputStream
Throws:
java.io.IOException

available

public int available()
              throws java.io.IOException
Overrides:
available in class java.io.InputStream
Throws:
java.io.IOException

close

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

getWrappedInputStream

public java.io.InputStream getWrappedInputStream()
Specified by:
getWrappedInputStream in interface InputStreamWrapper
Returns:
the underlying input stream wrapped by this class.