com.jogamp.common.util
Class Bitstream.ByteArrayStream

java.lang.Object
  extended by com.jogamp.common.util.Bitstream.ByteArrayStream
All Implemented Interfaces:
Bitstream.ByteStream<byte[]>
Enclosing class:
Bitstream<T>

public static class Bitstream.ByteArrayStream
extends Object
implements Bitstream.ByteStream<byte[]>

Specific byte stream.

Can handle input and output operations.


Constructor Summary
Bitstream.ByteArrayStream(byte[] stream)
           
 
Method Summary
 boolean canInput()
          Return true if stream can handle input, i.e.
 boolean canOutput()
          Return true if stream can handle output, i.e.
 void close()
          Closing the underlying stream, implies Bitstream.ByteStream.flush().
 void flush()
          Synchronizes all underlying output stream operations, or do nothing.
 byte[] getStream()
          Returns the underlying stream
 void mark(int readLimit)
          Set markpos to current position, allowing the stream to be Bitstream.ByteStream.reset().
 long position()
          Returns the byte position in the stream.
 int read()
          Reads one byte from the stream.
 void reset()
          Reset stream position to markpos as set via Bitstream.ByteStream.mark(int).
 void setStream(byte[] stream)
          Sets the underlying stream, without Bitstream.ByteStream.close()ing the previous one.
 long skip(long n)
          It is implementation dependent, whether backward skip giving a negative number is supported or not.
 int write(byte val)
          Writes one byte, to the stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Bitstream.ByteArrayStream

public Bitstream.ByteArrayStream(byte[] stream)
Method Detail

setStream

public void setStream(byte[] stream)
Description copied from interface: Bitstream.ByteStream
Sets the underlying stream, without Bitstream.ByteStream.close()ing the previous one.

Specified by:
setStream in interface Bitstream.ByteStream<byte[]>

getStream

public byte[] getStream()
Description copied from interface: Bitstream.ByteStream
Returns the underlying stream

Specified by:
getStream in interface Bitstream.ByteStream<byte[]>

close

public void close()
Description copied from interface: Bitstream.ByteStream
Closing the underlying stream, implies Bitstream.ByteStream.flush().

Implementation will null the stream references, hence Bitstream.ByteStream.setStream(Object) must be called before re-using instance.

Specified by:
close in interface Bitstream.ByteStream<byte[]>

flush

public void flush()
Description copied from interface: Bitstream.ByteStream
Synchronizes all underlying output stream operations, or do nothing.

Specified by:
flush in interface Bitstream.ByteStream<byte[]>

canInput

public boolean canInput()
Description copied from interface: Bitstream.ByteStream
Return true if stream can handle input, i.e. Bitstream.ByteStream.read().

Specified by:
canInput in interface Bitstream.ByteStream<byte[]>

canOutput

public boolean canOutput()
Description copied from interface: Bitstream.ByteStream
Return true if stream can handle output, i.e. Bitstream.ByteStream.write(byte)

Specified by:
canOutput in interface Bitstream.ByteStream<byte[]>

position

public long position()
Description copied from interface: Bitstream.ByteStream
Returns the byte position in the stream.

Specified by:
position in interface Bitstream.ByteStream<byte[]>

skip

public long skip(long n)
Description copied from interface: Bitstream.ByteStream
It is implementation dependent, whether backward skip giving a negative number is supported or not.

Specified by:
skip in interface Bitstream.ByteStream<byte[]>
Parameters:
n - number of bytes to skip
Returns:
actual skipped bytes

mark

public void mark(int readLimit)
Description copied from interface: Bitstream.ByteStream
Set markpos to current position, allowing the stream to be Bitstream.ByteStream.reset().

Specified by:
mark in interface Bitstream.ByteStream<byte[]>

reset

public void reset()
           throws IllegalStateException
Description copied from interface: Bitstream.ByteStream
Reset stream position to markpos as set via Bitstream.ByteStream.mark(int).

markpos is kept, hence Bitstream.ByteStream.reset() can be called multiple times.

Specified by:
reset in interface Bitstream.ByteStream<byte[]>
Throws:
IllegalStateException - if markpos has not been set via Bitstream.ByteStream.mark(int) or reset operation failed.

read

public int read()
Description copied from interface: Bitstream.ByteStream
Reads one byte from the stream.

Returns Bitstream.EOS is end-of-stream is reached, otherwise the resulting value.

Specified by:
read in interface Bitstream.ByteStream<byte[]>

write

public int write(byte val)
Description copied from interface: Bitstream.ByteStream
Writes one byte, to the stream.

Returns Bitstream.EOS is end-of-stream is reached, otherwise the written value.

Specified by:
write in interface Bitstream.ByteStream<byte[]>