Worldstone
|
Provides access to a variable bitsize values stream. More...
#include <BitStream.h>
Public Member Functions | |
BitStreamView (const void *inputBuffer, size_t sizeInBits, size_t firstBitOffsetInBuffer=0) | |
Creates a bitstream from raw memory. | |
BitStreamView | createSubView (size_t newbufferSizeInBits) const |
size_t | tell () const |
Returns the current position in the stream in bits. | |
void | setPosition (size_t newPosition) |
Set the current position, in bits. | |
size_t | bitPositionInBuffer () const |
Returns the current position in the buffer (ignoring the first bit position) in bits. | |
void | skip (size_t nbBits) |
Skips the next nbBits bits. | |
void | alignToByte () |
size_t | bufferSizeInBytes () const |
size_t | bufferSizeInBits () const |
Returns the total size of the current stream buffer in bits. More... | |
size_t | sizeInBits () const |
Returns the total size of the current stream buffer in bytes. | |
bool | readBool () |
Reads a single bit from the stream. | |
uint32_t | readBit () |
Reads a single bit from the stream (uint32_t version) | |
template<typename RetType = uint32_t> | |
RetType | readUnsigned (unsigned nbBits) |
Reads an unsigned value of variable bit size. More... | |
uint8_t | readUnsigned8OrLess (const int nbBits) |
uint32_t | read0Bits () |
Return 0u, used for member function tables as replacement for BitStream::readUnsigned<0> | |
template<unsigned NbBits, typename std::enable_if<(NbBits > 0> | |
int32_t | readSigned () |
Reads an signed value of variable bit size. More... | |
template<unsigned NbBits, typename std::enable_if<(NbBits==0)>::type * = nullptr> | |
int32_t | readSigned () |
Return 0 if reading less than 2 bits. More... | |
Public Member Functions inherited from WorldStone::IOBase | |
operator bool () const | |
bool | operator! () const |
bool | good () const |
bool | eof () const |
bool | fail () const |
bool | bad () const |
Additional Inherited Members | |
Public Types inherited from WorldStone::IOBase | |
using | Path = std::string |
using | iostate = int |
Protected Member Functions inherited from WorldStone::IOBase | |
void | setstate (iostate state) |
Protected Attributes inherited from WorldStone::IOBase | |
iostate | _state = goodbit |
Static Protected Attributes inherited from WorldStone::IOBase | |
static constexpr iostate | goodbit = 0x0 |
static constexpr iostate | eofbit = 0x1 |
static constexpr iostate | failbit = 0x2 |
static constexpr iostate | badbit = 0x4 |
Provides access to a variable bitsize values stream.
The bitstream operates as a view on raw memory to get values of different sizes. This assumes that the data is ordered in a little endian fashion, and signed values are encoded using 2's complement.
Add some bounds checking and set io flags on error ?
Implement a MemoryStream class
Definition at line 33 of file BitStream.h.
|
inline |
Returns the total size of the current stream buffer in bits.
Definition at line 91 of file BitStream.h.
|
inline |
Reads an signed value of variable bit size.
Values are using 2's complement.
NbBits | The number of bits to read from the stream |
Definition at line 161 of file BitStream.h.
|
inline |
Return 0 if reading less than 2 bits.
Definition at line 172 of file BitStream.h.
|
inline |
Reads an unsigned value of variable bit size.
RetType | The type of the value to return, must be at least NbBits bits big. |
nbBits | The number of bits to read from the stream |
Definition at line 112 of file BitStream.h.