Zserio C++ runtime library  1.1.0
Built for Zserio 2.15.0
zserio::BitStreamReader Class Reference

#include <BitStreamReader.h>

Classes

struct  ReaderContext
 

Public Types

using BitPosType = size_t
 

Public Member Functions

 BitStreamReader (const uint8_t *buffer, size_t bufferByteSize)
 
 BitStreamReader (Span< const uint8_t > buffer)
 
 BitStreamReader (Span< const uint8_t > buffer, size_t bufferBitSize)
 
 BitStreamReader (const uint8_t *buffer, size_t bufferBitSize, BitsTag)
 
template<typename ALLOC >
 BitStreamReader (const BasicBitBuffer< ALLOC > &bitBuffer)
 
 ~BitStreamReader ()=default
 
uint32_t readBits (uint8_t numBits=32)
 
uint64_t readBits64 (uint8_t numBits=64)
 
int32_t readSignedBits (uint8_t numBits=32)
 
int64_t readSignedBits64 (uint8_t numBits=64)
 
int64_t readVarInt64 ()
 
int32_t readVarInt32 ()
 
int16_t readVarInt16 ()
 
uint64_t readVarUInt64 ()
 
uint32_t readVarUInt32 ()
 
uint16_t readVarUInt16 ()
 
int64_t readVarInt ()
 
uint64_t readVarUInt ()
 
uint32_t readVarSize ()
 
float readFloat16 ()
 
float readFloat32 ()
 
double readFloat64 ()
 
template<typename ALLOC = std::allocator<uint8_t>>
vector< uint8_t, ALLOC > readBytes (const ALLOC &alloc=ALLOC())
 
template<typename ALLOC = std::allocator<char>>
string< ALLOC > readString (const ALLOC &alloc=ALLOC())
 
bool readBool ()
 
template<typename ALLOC = std::allocator<uint8_t>>
BasicBitBuffer< RebindAlloc< ALLOC, uint8_t > > readBitBuffer (const ALLOC &allocator=ALLOC())
 
BitPosType getBitPosition () const
 
void setBitPosition (BitPosType position)
 
void alignTo (size_t alignment)
 
size_t getBufferBitSize () const
 

Detailed Description

Reader class which allows to read various data from the bit stream.

Definition at line 22 of file BitStreamReader.h.

Member Typedef Documentation

◆ BitPosType

Type for bit position.

Definition at line 26 of file BitStreamReader.h.

Constructor & Destructor Documentation

◆ BitStreamReader() [1/5]

zserio::BitStreamReader::BitStreamReader ( const uint8_t *  buffer,
size_t  bufferByteSize 
)
explicit

Constructor from raw buffer.

Parameters
bufferPointer to the buffer to read.
bufferByteSizeSize of the buffer in bytes.

Definition at line 372 of file BitStreamReader.cpp.

◆ BitStreamReader() [2/5]

zserio::BitStreamReader::BitStreamReader ( Span< const uint8_t >  buffer)
explicit

Constructor from buffer passed as a Span.

Parameters
bufferBuffer to read.

Definition at line 376 of file BitStreamReader.cpp.

◆ BitStreamReader() [3/5]

zserio::BitStreamReader::BitStreamReader ( Span< const uint8_t >  buffer,
size_t  bufferBitSize 
)
explicit

Constructor from buffer passed as a Span with exact bit size.

Parameters
bufferBuffer to read.
bufferBitSizeSize of the buffer in bits.

Definition at line 380 of file BitStreamReader.cpp.

◆ BitStreamReader() [4/5]

zserio::BitStreamReader::BitStreamReader ( const uint8_t *  buffer,
size_t  bufferBitSize,
BitsTag   
)
explicit

Constructor from raw buffer with exact bit size.

Parameters
bufferPointer to buffer to read.
bufferBitSizeSize of the buffer in bits.

Definition at line 390 of file BitStreamReader.cpp.

◆ BitStreamReader() [5/5]

template<typename ALLOC >
zserio::BitStreamReader::BitStreamReader ( const BasicBitBuffer< ALLOC > &  bitBuffer)
inlineexplicit

Constructor from bit buffer.

Parameters
bitBufferBit buffer to read from.

Definition at line 105 of file BitStreamReader.h.

◆ ~BitStreamReader()

zserio::BitStreamReader::~BitStreamReader ( )
default

Destructor.

Member Function Documentation

◆ alignTo()

void zserio::BitStreamReader::alignTo ( size_t  alignment)

Moves current bit position to perform the requested bit alignment.

Parameters
alignmentSize of the alignment in bits.

Definition at line 858 of file BitStreamReader.cpp.

◆ getBitPosition()

BitPosType zserio::BitStreamReader::getBitPosition ( ) const
inline

Gets current bit position.

Returns
Current bit position.

Definition at line 354 of file BitStreamReader.h.

◆ getBufferBitSize()

size_t zserio::BitStreamReader::getBufferBitSize ( ) const
inline

Gets size of the underlying buffer in bits.

Returns
Buffer bit size.

Definition at line 378 of file BitStreamReader.h.

◆ readBitBuffer()

template<typename ALLOC = std::allocator<uint8_t>>
BasicBitBuffer<RebindAlloc<ALLOC, uint8_t> > zserio::BitStreamReader::readBitBuffer ( const ALLOC &  allocator = ALLOC())
inline

Reads a bit buffer.

Parameters
allocAllocator to use.
Returns
Read bit buffer.

Definition at line 316 of file BitStreamReader.h.

◆ readBits()

uint32_t zserio::BitStreamReader::readBits ( uint8_t  numBits = 32)

Reads unsigned bits up to 32-bits.

Parameters
numBitsNumber of bits to read.
Returns
Read bits.

Definition at line 394 of file BitStreamReader.cpp.

◆ readBits64()

uint64_t zserio::BitStreamReader::readBits64 ( uint8_t  numBits = 64)

Reads unsigned bits up to 64-bits.

Parameters
numBitsNumber of bits to read.
Returns
Read bits.

Definition at line 401 of file BitStreamReader.cpp.

◆ readBool()

bool zserio::BitStreamReader::readBool ( )

Reads bool as a single bit.

Returns
Read bool value.

Definition at line 837 of file BitStreamReader.cpp.

◆ readBytes()

template<typename ALLOC = std::allocator<uint8_t>>
vector<uint8_t, ALLOC> zserio::BitStreamReader::readBytes ( const ALLOC &  alloc = ALLOC())
inline

Reads bytes.

Parameters
allocAllocator to use.
Returns
Read bytes as a vector.

Definition at line 242 of file BitStreamReader.h.

◆ readFloat16()

float zserio::BitStreamReader::readFloat16 ( )

Reads 16-bit float.

Returns
Read float16.

Definition at line 812 of file BitStreamReader.cpp.

◆ readFloat32()

float zserio::BitStreamReader::readFloat32 ( )

Reads 32-bit float.

Returns
Read float32.

Definition at line 819 of file BitStreamReader.cpp.

◆ readFloat64()

double zserio::BitStreamReader::readFloat64 ( )

Reads 64-bit float double.

Returns
Read float64.

Definition at line 826 of file BitStreamReader.cpp.

◆ readSignedBits()

int32_t zserio::BitStreamReader::readSignedBits ( uint8_t  numBits = 32)

Reads signed bits up to 32-bits.

Parameters
numBitsNumber of bits to read.
Returns
Read bits.

Definition at line 445 of file BitStreamReader.cpp.

◆ readSignedBits64()

int64_t zserio::BitStreamReader::readSignedBits64 ( uint8_t  numBits = 64)

Reads signed bits up to 64-bits.

Parameters
numBitsNumber of bits to read.
Returns
Read bits.

Definition at line 417 of file BitStreamReader.cpp.

◆ readString()

template<typename ALLOC = std::allocator<char>>
string<ALLOC> zserio::BitStreamReader::readString ( const ALLOC &  alloc = ALLOC())
inline

Reads an UTF-8 string.

Parameters
allocAllocator to use.
Returns
Read string.

Definition at line 274 of file BitStreamReader.h.

◆ readVarInt()

int64_t zserio::BitStreamReader::readVarInt ( )

Reads signed variable integer up to 72 bits.

Returns
Read varint.

Definition at line 647 of file BitStreamReader.cpp.

◆ readVarInt16()

int16_t zserio::BitStreamReader::readVarInt16 ( )

Reads signed variable integer up to 16 bits.

Returns
Read varint16.

Definition at line 536 of file BitStreamReader.cpp.

◆ readVarInt32()

int32_t zserio::BitStreamReader::readVarInt32 ( )

Reads signed variable integer up to 32 bits.

Returns
Read varint32.

Definition at line 508 of file BitStreamReader.cpp.

◆ readVarInt64()

int64_t zserio::BitStreamReader::readVarInt64 ( )

Reads signed variable integer up to 64 bits.

Returns
Read varint64.

Definition at line 452 of file BitStreamReader.cpp.

◆ readVarSize()

uint32_t zserio::BitStreamReader::readVarSize ( )

Read variable size integer up to 40 bits.

Returns
Read varsize.

Definition at line 772 of file BitStreamReader.cpp.

◆ readVarUInt()

uint64_t zserio::BitStreamReader::readVarUInt ( )

Read unsigned variable integer up to 72 bits.

Returns
Read varuint.

Definition at line 710 of file BitStreamReader.cpp.

◆ readVarUInt16()

uint16_t zserio::BitStreamReader::readVarUInt16 ( )

Read unsigned variable integer up to 16 bits.

Returns
Read varuint16.

Definition at line 633 of file BitStreamReader.cpp.

◆ readVarUInt32()

uint32_t zserio::BitStreamReader::readVarUInt32 ( )

Read unsigned variable integer up to 32 bits.

Returns
Read varuint32.

Definition at line 606 of file BitStreamReader.cpp.

◆ readVarUInt64()

uint64_t zserio::BitStreamReader::readVarUInt64 ( )

Read unsigned variable integer up to 64 bits.

Returns
Read varuint64.

Definition at line 551 of file BitStreamReader.cpp.

◆ setBitPosition()

void zserio::BitStreamReader::setBitPosition ( BitPosType  position)

Sets current bit position. Use with caution!

Parameters
positionNew bit position.

Definition at line 842 of file BitStreamReader.cpp.


The documentation for this class was generated from the following files: