netcom.util
Class WrappedInputStream

java.lang.Object
  extended byjava.io.InputStream
      extended byjava.io.FilterInputStream
          extended bynetcom.util.WrappedInputStream

public class WrappedInputStream
extends java.io.FilterInputStream

This input stream works in conjunction with the WrappedOutputStream to introduce a protocol for reading arbitrary length data in a uniform way.

Note: See the javadoc for WrappedOutputStream for more information.

See Also:
WrappedOutputStream

Field Summary
protected  boolean fClosed
          To mark that the stream is "closed".
protected  java.io.DataInputStream fDataInputStream
          Data input stream.
protected  int fPacketCount
          Bytes left on input stream for current packet.
 
Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
WrappedInputStream(java.io.InputStream stream)
          Constructs a wrapper for the given an input stream.
 
Method Summary
 void close()
          Closes the input stream.
 int read()
          Reads a single byte.
 int read(byte[] b, int offset, int length)
          Reads a block of bytes and returns the total number of bytes read.
 long skip(long n)
          Skips the specified number of bytes from the input stream.
 
Methods inherited from class java.io.FilterInputStream
available, mark, markSupported, read, reset
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fPacketCount

protected int fPacketCount
Bytes left on input stream for current packet.


fDataInputStream

protected java.io.DataInputStream fDataInputStream
Data input stream. This stream is used to input the block sizes from the data stream that are written by the WrappedOutputStream.

Note: The data input stream is only used for reading the byte count for performance reasons. We avoid the method indirection for reading the byte data.


fClosed

protected boolean fClosed
To mark that the stream is "closed".

Constructor Detail

WrappedInputStream

public WrappedInputStream(java.io.InputStream stream)
Constructs a wrapper for the given an input stream.

Method Detail

read

public int read()
         throws java.io.IOException
Reads a single byte.

Throws:
java.io.IOException

read

public int read(byte[] b,
                int offset,
                int length)
         throws java.io.IOException
Reads a block of bytes and returns the total number of bytes read.

Throws:
java.io.IOException

skip

public long skip(long n)
          throws java.io.IOException
Skips the specified number of bytes from the input stream.

Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException
Closes the input stream. This method will search for the end of the wrapped input, positioning the stream at after the end packet.

Note: This method does not close the underlying input stream.

Throws:
java.io.IOException