|
GlueGen v2.6.0-rc-20250712
GlueGen, Native Binding Generator for Java (public API).
|
Versatile Bitstream implementation supporting: More...
Classes | |
| class | ByteArrayStream |
Specific byte stream. More... | |
| class | ByteBufferStream |
Specific byte stream. More... | |
| class | ByteInputStream |
Specific byte stream. More... | |
| class | ByteOutputStream |
Specific byte stream. More... | |
| interface | ByteStream |
| General byte stream. More... | |
Public Member Functions | |
| Bitstream (final ByteStream< T > stream, final boolean outputMode) throws IllegalArgumentException | |
| final void | setThrowIOExceptionOnEOF (final boolean enable) |
Enables or disables throwing an IOException in case EOS appears. More... | |
| final boolean | getThrowIOExceptionOnEOF () |
Returns true if I/O methods throw an IOException if EOS appears, otherwise false (default). More... | |
| final void | setStream (final T stream, final boolean outputMode) throws IllegalArgumentException, IOException |
Sets the underlying stream, without close()ing the previous one. More... | |
| final ByteStream< T > | getStream () |
Returns the currently used ByteStream. More... | |
| final T | getSubStream () |
Returns the currently used ByteStream's ByteStream#getStream(). More... | |
| final void | close () throws IOException |
Closing the underlying stream, implies flush(). More... | |
| final int | flush () throws IllegalStateException, IOException |
Synchronizes all underlying output stream operations, or do nothing. More... | |
| final boolean | canInput () |
| Return true if stream can handle input, i.e. More... | |
| final boolean | canOutput () |
| Return true if stream can handle output, i.e. More... | |
| final void | mark (final int readLimit) throws IllegalStateException |
Set markpos to current position, allowing the stream to be reset(). More... | |
| final void | reset () throws IllegalStateException, IOException |
Reset stream position to markpos as set via mark(int). More... | |
| final int | getBitCount () |
| Number of remaining bits in cache to read before next byte-read (input mode) or number of remaining bits to be cached before next byte-write (output mode). More... | |
| final int | getLastBitPos () |
| Return the last bit number read or written counting from [0..7]. More... | |
| final int | getBitPosition () |
| Return the next bit number to be read or write counting from [0..7]. More... | |
| final int | getBitBuffer () |
| Returns the current bit buffer. More... | |
| final long | position () |
| Returns the bit position in the stream. More... | |
| final long | position (final long newPosition) throws UnsupportedOperationException, IllegalArgumentException, IllegalStateException, IOException |
| Sets this stream's bit position. More... | |
| final int | readBit (final boolean msbFirst) throws UnsupportedOperationException, IllegalStateException, IOException |
| final int | writeBit (final boolean msbFirst, final int bit) throws IllegalStateException, IOException |
| long | skip (final long n) throws IllegalStateException, IOException |
| It is implementation dependent, whether backward skip giving a negative number is supported or not. More... | |
| int | readBits31 (final int n) throws IllegalArgumentException, IOException |
Return incoming bits as read via readBit(boolean) LSB-first as little-endian. More... | |
| int | writeBits31 (final int n, final int bits) throws IllegalStateException, IllegalArgumentException, IOException |
Write the given bits via writeBit(boolean, int) LSB-first as little-endian. More... | |
| final int | readUInt8 () throws IllegalStateException, IOException |
Return incoming uint8_t as read via readBits31(int). More... | |
| final int | writeInt8 (final byte int8) throws IllegalStateException, IOException |
Write the given 8 bits via writeBits31(int, int). More... | |
| final int | readUInt16 (final boolean bigEndian) throws IllegalStateException, IOException |
Return incoming uint16_t as read via readBits31(int) LSB-first as little-endian, hence bytes are swapped if bigEndian. More... | |
| final int | writeInt16 (final boolean bigEndian, final short int16) throws IllegalStateException, IOException |
Write the given 16 bits via writeBits31(int, int) LSB-first as little-endian, hence bytes are swapped if bigEndian. More... | |
| final long | readUInt32 (final boolean bigEndian) throws IllegalStateException, IOException |
Return incoming uint32_t as read via readBits31(int) LSB-first as little-endian, hence bytes are swapped if bigEndian. More... | |
| final int | writeInt32 (final boolean bigEndian, final int int32) throws IllegalStateException, IOException |
Write the given 32 bits via writeBits31(int, int) LSB-first as little-endian, hence bytes are swapped if bigEndian. More... | |
| String | toString () |
Static Public Member Functions | |
| static final int | readUInt16 (final boolean bigEndian, final byte[] bytes, final int offset) throws IndexOutOfBoundsException |
Return incoming uint16_t value and swap bytes according to bigEndian. More... | |
| static final long | readUInt32 (final boolean bigEndian, final byte[] bytes, final int offset) throws IndexOutOfBoundsException |
Return incoming uint32_t and swap bytes according to bigEndian. More... | |
| static final long | toUInt32Long (final int int32) |
Reinterpret the given int32_t value as uint32_t, i.e. More... | |
| static final int | toUInt32Int (final int int32) |
Returns the reinterpreted given int32_t value as uint32_t if ≤ Integer#MAX_VALUE as within an int storage. More... | |
| static final int | uint32LongToInt (final long uint32) |
Returns the given uint32_t value long value as int if ≤ Integer#MAX_VALUE. More... | |
| static String | toBinString (final boolean msbFirst, final int v, final int bitCount) |
| static String | toHexBinString (final boolean msbFirst, final int v, final int bitCount) |
| static final String | toHexBinString (final boolean msbFirst, final byte[] data, final int offset, final int len) |
| static final String | toHexBinString (final boolean msbFirst, final ByteBuffer data, final int offset, final int len) |
| static void | checkBounds (final byte[] sb, final int offset, final int remaining) throws IndexOutOfBoundsException |
Static Public Attributes | |
| static final int | EOS = -1 |
| End of stream marker, {@value} or 0xFFFFFFFF. More... | |
Protected Member Functions | |
| String | toStringImpl () |
Versatile Bitstream implementation supporting:
Definition at line 51 of file Bitstream.java.
| com.jogamp.common.util.Bitstream< T >.Bitstream | ( | final ByteStream< T > | stream, |
| final boolean | outputMode | ||
| ) | throws IllegalArgumentException |
| stream | |
| outputMode |
| IllegalArgumentException | if requested outputMode doesn't match stream's canInput() and canOutput(). |
Definition at line 624 of file Bitstream.java.
| final boolean com.jogamp.common.util.Bitstream< T >.canInput | ( | ) |
Return true if stream can handle input, i.e.
Definition at line 740 of file Bitstream.java.
| final boolean com.jogamp.common.util.Bitstream< T >.canOutput | ( | ) |
Return true if stream can handle output, i.e.
Definition at line 743 of file Bitstream.java.
|
static |
| final void com.jogamp.common.util.Bitstream< T >.close | ( | ) | throws IOException |
Closing the underlying stream, implies flush().
Implementation will null the stream references, hence setStream(Object) must be called before re-using instance.
If the closed stream was in output mode, flush() is being called.
| IOException |
Definition at line 701 of file Bitstream.java.
| final int com.jogamp.common.util.Bitstream< T >.flush | ( | ) | throws IllegalStateException, IOException |
Synchronizes all underlying output stream operations, or do nothing.
Method also flushes incomplete bytes to the underlying ByteStream and hence skips to the next byte position.
EOS caused by writing, otherwise zero. | IllegalStateException | if not in output mode or stream closed |
| IOException |
Definition at line 720 of file Bitstream.java.
| final int com.jogamp.common.util.Bitstream< T >.getBitBuffer | ( | ) |
Returns the current bit buffer.
Definition at line 821 of file Bitstream.java.
| final int com.jogamp.common.util.Bitstream< T >.getBitCount | ( | ) |
Number of remaining bits in cache to read before next byte-read (input mode) or number of remaining bits to be cached before next byte-write (output mode).
Counting down from 7..0 7..0, starting with 0.
In input mode, zero indicates reading a new byte and cont. w/ 7. In output mode, the cached byte is written when flipping over to 0.
Definition at line 791 of file Bitstream.java.
| final int com.jogamp.common.util.Bitstream< T >.getBitPosition | ( | ) |
Return the next bit number to be read or write counting from [0..7].
If no bit access has been performed, 0 is returned.
Returned value is normalized [0..7], i.e. independent from msb or lsb read order.
Definition at line 809 of file Bitstream.java.
| final int com.jogamp.common.util.Bitstream< T >.getLastBitPos | ( | ) |
Return the last bit number read or written counting from [0..7].
If no bit access has been performed, 7 is returned.
Returned value is normalized [0..7], i.e. independent from msb or lsb read order.
Definition at line 800 of file Bitstream.java.
| final ByteStream< T > com.jogamp.common.util.Bitstream< T >.getStream | ( | ) |
Returns the currently used ByteStream.
Definition at line 683 of file Bitstream.java.
| final T com.jogamp.common.util.Bitstream< T >.getSubStream | ( | ) |
Returns the currently used ByteStream's ByteStream#getStream().
Definition at line 686 of file Bitstream.java.
| final boolean com.jogamp.common.util.Bitstream< T >.getThrowIOExceptionOnEOF | ( | ) |
Returns true if I/O methods throw an IOException if EOS appears, otherwise false (default).
Definition at line 661 of file Bitstream.java.
| final void com.jogamp.common.util.Bitstream< T >.mark | ( | final int | readLimit | ) | throws IllegalStateException |
Set markpos to current position, allowing the stream to be reset().
| readlimit | maximum number of bytes able to read before invalidating the markpos. |
| IllegalStateException | if not in input mode or stream closed |
Definition at line 750 of file Bitstream.java.
| final long com.jogamp.common.util.Bitstream< T >.position | ( | ) |
Returns the bit position in the stream.
Definition at line 826 of file Bitstream.java.
| final long com.jogamp.common.util.Bitstream< T >.position | ( | final long | newPosition | ) | throws UnsupportedOperationException, IllegalArgumentException, IllegalStateException, IOException |
Sets this stream's bit position.
A set mark is cleared.
Returns Bitstream#EOS is end-of-stream is reached, otherwise the new position.
Known supporting implementation is ByteBufferStream and ByteArrayStream.
| newPosition | The new positive position. |
Bitstream#EOS if end-of-stream is reached.| UnsupportedOperationException | if not supported, i.e. ByteInputStream or ByteOutputStream |
| IllegalArgumentException | If the newPosition is negative |
| IOException | if read error occurs or EOS is reached and setThrowIOExceptionOnEOF(boolean) is set to true. |
| IllegalStateException |
Definition at line 861 of file Bitstream.java.
| final int com.jogamp.common.util.Bitstream< T >.readBit | ( | final boolean | msbFirst | ) | throws UnsupportedOperationException, IllegalStateException, IOException |
| msbFirst | if true incoming stream bit order is MSB to LSB, otherwise LSB to MSB. |
EOS if end-of-stream is reached. | IOException | |
| IllegalStateException | if not in input mode or stream closed |
Definition at line 879 of file Bitstream.java.
| int com.jogamp.common.util.Bitstream< T >.readBits31 | ( | final int | n | ) | throws IllegalArgumentException, IOException |
Return incoming bits as read via readBit(boolean) LSB-first as little-endian.
The incoming bit order is from low- to most-significant-bit, maintaining bit LSB-first order.
| n | number of bits, maximum 31 bits |
EOS. | IllegalStateException | if not in input mode or stream closed |
| IllegalArgumentException | if n > 31 |
| IOException |
Definition at line 1031 of file Bitstream.java.
| final int com.jogamp.common.util.Bitstream< T >.readUInt16 | ( | final boolean | bigEndian | ) | throws IllegalStateException, IOException |
Return incoming uint16_t as read via readBits31(int) LSB-first as little-endian, hence bytes are swapped if bigEndian.
In case of a int16_t 2-complement signed value, simply cast the result to short after checking for EOS.
| bigEndian | if true, swap incoming bytes to little-endian, otherwise leave them as little-endian. |
EOS or the 16bit unsigned value within the lower bits. | IllegalStateException | if not in input mode or stream closed |
| IOException |
Definition at line 1231 of file Bitstream.java.
|
static |
Return incoming uint16_t value and swap bytes according to bigEndian.
In case of a int16_t 2-complement signed value, simply cast the result to short.
| bigEndian | if false, swap incoming bytes to little-endian, otherwise leave them as big-endian. |
| IndexOutOfBoundsException |
Definition at line 1272 of file Bitstream.java.
| final long com.jogamp.common.util.Bitstream< T >.readUInt32 | ( | final boolean | bigEndian | ) | throws IllegalStateException, IOException |
Return incoming uint32_t as read via readBits31(int) LSB-first as little-endian, hence bytes are swapped if bigEndian.
In case of a int32_t 2-complement signed value, simply cast the result to int after checking for EOS.
| bigEndian | if true, swap incoming bytes to little-endian, otherwise leave them as little-endian. |
EOS or the 32bit unsigned value within the lower bits. | IllegalStateException | if not in input mode or stream closed |
| IOException |
Definition at line 1338 of file Bitstream.java.
|
static |
Return incoming uint32_t and swap bytes according to bigEndian.
In case of a int32_t 2-complement signed value, simply cast the result to int.
| bigEndian | if false, swap incoming bytes to little-endian, otherwise leave them as big-endian. |
| IndexOutOfBoundsException |
Definition at line 1384 of file Bitstream.java.
| final int com.jogamp.common.util.Bitstream< T >.readUInt8 | ( | ) | throws IllegalStateException, IOException |
Return incoming uint8_t as read via readBits31(int).
In case of a int8_t 2-complement signed value, simply cast the result to byte after checking for EOS.
EOS or the 8bit unsigned value within the lower bits. | IllegalStateException | if not in input mode or stream closed |
| IOException |
Definition at line 1181 of file Bitstream.java.
| final void com.jogamp.common.util.Bitstream< T >.reset | ( | ) | throws IllegalStateException, IOException |
Reset stream position to markpos as set via mark(int).
markpos is kept, hence reset() can be called multiple times.
| IllegalStateException | if not in input mode or stream closed |
| IllegalStateException | if markpos has not been set via mark(int) or reset operation failed. |
| IOException | if reset operation failed. |
Definition at line 768 of file Bitstream.java.
| final void com.jogamp.common.util.Bitstream< T >.setStream | ( | final T | stream, |
| final boolean | outputMode | ||
| ) | throws IllegalArgumentException, IOException |
Sets the underlying stream, without close()ing the previous one.
If the previous stream was in output mode, flush() is being called.
| IllegalArgumentException | if requested outputMode doesn't match stream's canInput() and canOutput(). |
| IOException | could be caused by flush(). |
Definition at line 672 of file Bitstream.java.
| final void com.jogamp.common.util.Bitstream< T >.setThrowIOExceptionOnEOF | ( | final boolean | enable | ) |
Enables or disables throwing an IOException in case EOS appears.
Default behavior for I/O methods is not to throw an IOException, but to return EOS.
Definition at line 656 of file Bitstream.java.
| long com.jogamp.common.util.Bitstream< T >.skip | ( | final long | n | ) | throws IllegalStateException, IOException |
It is implementation dependent, whether backward skip giving a negative number is supported or not.
| n | number of bits to skip |
| IOException | if read error occurs or EOS is reached and setThrowIOExceptionOnEOF(boolean) is set to true. |
| IllegalStateException | if closed |
Definition at line 952 of file Bitstream.java.
|
static |
|
static |
|
static |
|
static |
Definition at line 1533 of file Bitstream.java.
| String com.jogamp.common.util.Bitstream< T >.toString | ( | ) |
|
protected |
Definition at line 1501 of file Bitstream.java.
|
static |
Returns the reinterpreted given int32_t value as uint32_t if ≤ Integer#MAX_VALUE as within an int storage.
Otherwise return -1.
Definition at line 1480 of file Bitstream.java.
|
static |
Reinterpret the given int32_t value as uint32_t, i.e.
perform the following cast to long:
final long l = 0xffffffffL & int32;
Definition at line 1470 of file Bitstream.java.
|
static |
Returns the given uint32_t value long value as int if ≤ Integer#MAX_VALUE.
Otherwise return -1.
Definition at line 1489 of file Bitstream.java.
| final int com.jogamp.common.util.Bitstream< T >.writeBit | ( | final boolean | msbFirst, |
| final int | bit | ||
| ) | throws IllegalStateException, IOException |
| msbFirst | if true outgoing stream bit order is MSB to LSB, otherwise LSB to MSB. |
| bit |
EOS if end-of-stream is reached. | IOException | |
| IllegalStateException | if not in output mode or stream closed |
Definition at line 915 of file Bitstream.java.
| int com.jogamp.common.util.Bitstream< T >.writeBits31 | ( | final int | n, |
| final int | bits | ||
| ) | throws IllegalStateException, IllegalArgumentException, IOException |
Write the given bits via writeBit(boolean, int) LSB-first as little-endian.
The outgoing bit order is from low- to most-significant-bit, maintaining bit LSB-first order.
| n | number of bits, maximum 31 bits |
| bits | the bits to write |
EOS. | IllegalStateException | if not in output mode or stream closed |
| IllegalArgumentException | if n > 31 |
| IOException |
Definition at line 1108 of file Bitstream.java.
| final int com.jogamp.common.util.Bitstream< T >.writeInt16 | ( | final boolean | bigEndian, |
| final short | int16 | ||
| ) | throws IllegalStateException, IOException |
Write the given 16 bits via writeBits31(int, int) LSB-first as little-endian, hence bytes are swapped if bigEndian.
| bigEndian | if true, swap given bytes to little-endian, otherwise leave them as little-endian. |
EOS or the written 16bit value. | IllegalStateException | if not in output mode or stream closed |
| IOException |
Definition at line 1292 of file Bitstream.java.
| final int com.jogamp.common.util.Bitstream< T >.writeInt32 | ( | final boolean | bigEndian, |
| final int | int32 | ||
| ) | throws IllegalStateException, IOException |
Write the given 32 bits via writeBits31(int, int) LSB-first as little-endian, hence bytes are swapped if bigEndian.
| bigEndian | if true, swap given bytes to little-endian, otherwise leave them as little-endian. |
EOS or the written 32bit value. | IllegalStateException | if not in output mode or stream closed |
| IOException |
Definition at line 1405 of file Bitstream.java.
| final int com.jogamp.common.util.Bitstream< T >.writeInt8 | ( | final byte | int8 | ) | throws IllegalStateException, IOException |
Write the given 8 bits via writeBits31(int, int).
EOS or the written 8bit value. | IllegalStateException | if not in output mode or stream closed |
| IOException |
Definition at line 1203 of file Bitstream.java.
|
static |
End of stream marker, {@value} or 0xFFFFFFFF.
Definition at line 55 of file Bitstream.java.