org.jets3t.service.io
Class ProgressMonitoredInputStream
java.lang.Object
java.io.InputStream
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
BytesTransferredWatcher
object is notified of the count of bytes read.
- Author:
- James Murty
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. |
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 |
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.
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.