com.sun.jimi.core.decoder.png
Class MeteredInputStream

java.lang.Object
  |
  +--java.io.InputStream
        |
        +--java.io.FilterInputStream
              |
              +--com.sun.jimi.core.decoder.png.MeteredInputStream

public class MeteredInputStream
extends java.io.FilterInputStream


Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
MeteredInputStream(java.io.InputStream in, int size)
           
 
Method Summary
 int available()
          Returns the number of bytes that can be read without blocking.
 void close()
          Does NOT close the input stream.
 void mark(int readlimit)
          Marks the current position in the input stream.
 boolean markSupported()
          Returns true if this stream type supports mark/reset.
 int read()
          Reads a byte.
 int read(byte[] b)
          Reads into an array of bytes.
 int read(byte[] b, int off, int len)
          Reads into an array of bytes.
 void reset()
          Repositions the stream to the last marked position.
 long skip(long n)
          Skips bytes of input.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MeteredInputStream

public MeteredInputStream(java.io.InputStream in,
                          int size)
Method Detail

read

public final int read()
               throws java.io.IOException
Reads a byte. Will block if no input is available.
Returns:
the byte read, or -1 if the end of the stream is reached.
Throws:
java.io.IOException - If an I/O error has occurred.
Overrides:
read in class java.io.FilterInputStream

read

public final int read(byte[] b)
               throws java.io.IOException
Reads into an array of bytes. Blocks until some input is available.
Parameters:
b - the buffer into which the data is read
Returns:
the actual number of bytes read. Returns -1 when the end of the stream is reached.
Throws:
java.io.IOException - If an I/O error has occurred.
Overrides:
read in class java.io.FilterInputStream

read

public final int read(byte[] b,
                      int off,
                      int len)
               throws java.io.IOException
Reads into an array of bytes. Blocks until some input is available. This method should be overridden in a subclass for efficiency (the default implementation reads 1 byte at a time).
Parameters:
b - the buffer into which the data is read
off - the start offset of the data
len - the maximum number of bytes read
Returns:
the actual number of bytes read. Returns -1 when the end of the stream is reached.
Throws:
java.io.IOException - If an I/O error has occurred.
Overrides:
read in class java.io.FilterInputStream

skip

public final long skip(long n)
                throws java.io.IOException
Skips bytes of input.
Parameters:
n - bytes to be skipped
Returns:
actual number of bytes skipped
Throws:
java.io.IOException - If an I/O error has occurred.
Overrides:
skip in class java.io.FilterInputStream

available

public final int available()
                    throws java.io.IOException
Returns the number of bytes that can be read without blocking.
Returns:
the number of available bytes
Overrides:
available in class java.io.FilterInputStream

close

public final void close()
                 throws java.io.IOException
Does NOT close the input stream. More data is to be expected
Throws:
java.io.IOException - If an I/O error has occurred.
Overrides:
close in class java.io.FilterInputStream

mark

public final void mark(int readlimit)
Marks the current position in the input stream. A subsequent call to reset() will reposition the stream at the last marked position so that subsequent reads will re-read the same bytes. The stream promises to allow readlimit bytes to be read before the mark position gets invalidated.
Parameters:
readlimit - the maximum limit of bytes allowed tobe read before the mark position becomes invalid.
Overrides:
mark in class java.io.FilterInputStream

reset

public final void reset()
                 throws java.io.IOException
Repositions the stream to the last marked position. If the stream has not been marked, or if the mark has been invalidated, an IOException is thrown. Stream marks are intended to be used in situations where you need to read ahead a little to see what's in the stream. Often this is most easily done by invoking some general parser. If the stream is of the type handled by the parse, it just chugs along happily. If the stream is not of that type, the parser should toss an exception when it fails. If this happens within readlimit bytes, it allows the outer code to reset the stream and try another parser.
Overrides:
reset in class java.io.FilterInputStream

markSupported

public final boolean markSupported()
Returns true if this stream type supports mark/reset.
Overrides:
markSupported in class java.io.FilterInputStream