com.planetj.servlet.filter.compression
Class StatsInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by com.planetj.servlet.filter.compression.StatsInputStream
All Implemented Interfaces:
java.io.Closeable

final class StatsInputStream
extends java.io.InputStream

An InputStream that decorates another InputStream and notes when bytes are read from the stream. Callers create an instance of StatsInputStream with an instance of StatsInputStream.StatsCallback, which receives notification of reads. This information might be used to tally the number of bytes read from a stream.

Since:
1.6
Author:
Sean Owen

Nested Class Summary
(package private) static interface StatsInputStream.StatsCallback
           
 
Field Summary
private  java.io.InputStream inputStream
           
private  StatsInputStream.StatsCallback statsCallback
           
 
Constructor Summary
StatsInputStream(java.io.InputStream inputStream, StatsInputStream.StatsCallback statsCallback)
           
 
Method Summary
 int available()
           
 void close()
           
 void mark(int readlimit)
           
 boolean markSupported()
           
 int read()
           
 int read(byte[] b)
           
 int read(byte[] b, int offset, int length)
           
 void reset()
           
 long skip(long n)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

inputStream

private final java.io.InputStream inputStream

statsCallback

private final StatsInputStream.StatsCallback statsCallback
Constructor Detail

StatsInputStream

StatsInputStream(java.io.InputStream inputStream,
                 StatsInputStream.StatsCallback statsCallback)
Method Detail

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)
         throws java.io.IOException
Overrides:
read in class java.io.InputStream
Throws:
java.io.IOException

read

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

skip

public long skip(long n)
          throws java.io.IOException
Overrides:
skip 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

mark

public void mark(int readlimit)
Overrides:
mark in class java.io.InputStream

reset

public void reset()
           throws java.io.IOException
Overrides:
reset in class java.io.InputStream
Throws:
java.io.IOException

markSupported

public boolean markSupported()
Overrides:
markSupported in class java.io.InputStream

toString

@NotNull
public java.lang.String toString()
Overrides:
toString in class java.lang.Object