Zserio C++ runtime library  1.4.0
Built for Zserio 2.18.1
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, ArrayPreallocation maxArrayPrealloc={})
 
 BitStreamReader (Span< const uint8_t > buffer, ArrayPreallocation maxArrayPrealloc={})
 
 BitStreamReader (Span< const uint8_t > buffer, size_t bufferBitSize, ArrayPreallocation maxArrayPrealloc={})
 
 BitStreamReader (const uint8_t *buffer, size_t bufferBitSize, BitsTag, ArrayPreallocation maxArrayPrealloc={})
 
template<typename ALLOC >
 BitStreamReader (const BasicBitBuffer< ALLOC > &bitBuffer, ArrayPreallocation maxArrayPrealloc={})
 
 ~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
 
size_t getMaxArrayPreallocation () const
 

Detailed Description

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

Definition at line 55 of file BitStreamReader.h.

Member Typedef Documentation

◆ BitPosType

Type for bit position.

Definition at line 59 of file BitStreamReader.h.

Constructor & Destructor Documentation

◆ BitStreamReader() [1/5]

zserio::BitStreamReader::BitStreamReader ( const uint8_t *  buffer,
size_t  bufferByteSize,
ArrayPreallocation  maxArrayPrealloc = {} 
)
explicit

Constructor from raw buffer.

Parameters
bufferPointer to the buffer to read.
bufferByteSizeSize of the buffer in bytes.
maxArrayPreallocMaximum preallocation for arrays.

Definition at line 374 of file BitStreamReader.cpp.

◆ BitStreamReader() [2/5]

zserio::BitStreamReader::BitStreamReader ( Span< const uint8_t >  buffer,
ArrayPreallocation  maxArrayPrealloc = {} 
)
explicit

Constructor from buffer passed as a Span.

Parameters
bufferBuffer to read.
maxArrayPreallocMaximum preallocation for arrays.

Definition at line 379 of file BitStreamReader.cpp.

◆ BitStreamReader() [3/5]

zserio::BitStreamReader::BitStreamReader ( Span< const uint8_t >  buffer,
size_t  bufferBitSize,
ArrayPreallocation  maxArrayPrealloc = {} 
)
explicit

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

Parameters
bufferBuffer to read.
bufferBitSizeSize of the buffer in bits.
maxArrayPreallocMaximum preallocation for arrays.

Definition at line 383 of file BitStreamReader.cpp.

◆ BitStreamReader() [4/5]

zserio::BitStreamReader::BitStreamReader ( const uint8_t *  buffer,
size_t  bufferBitSize,
BitsTag  ,
ArrayPreallocation  maxArrayPrealloc = {} 
)
explicit

Constructor from raw buffer with exact bit size.

Parameters
bufferPointer to buffer to read.
bufferBitSizeSize of the buffer in bits.
maxArrayPreallocMaximum preallocation for arrays.

Definition at line 394 of file BitStreamReader.cpp.

◆ BitStreamReader() [5/5]

template<typename ALLOC >
zserio::BitStreamReader::BitStreamReader ( const BasicBitBuffer< ALLOC > &  bitBuffer,
ArrayPreallocation  maxArrayPrealloc = {} 
)
inlineexplicit

Constructor from bit buffer.

Parameters
bitBufferBit buffer to read from.
maxArrayPreallocMaximum preallocation for arrays.

Definition at line 149 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 863 of file BitStreamReader.cpp.

◆ getBitPosition()

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

Gets current bit position.

Returns
Current bit position.

Definition at line 411 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 435 of file BitStreamReader.h.

◆ getMaxArrayPreallocation()

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

Gets the maximum initial array capacity in bytes.

Returns
Maximum array preallocation.

Definition at line 445 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 368 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 399 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 406 of file BitStreamReader.cpp.

◆ readBool()

bool zserio::BitStreamReader::readBool ( )

Reads bool as a single bit.

Returns
Read bool value.

Definition at line 842 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 286 of file BitStreamReader.h.

◆ readFloat16()

float zserio::BitStreamReader::readFloat16 ( )

Reads 16-bit float.

Returns
Read float16.

Definition at line 817 of file BitStreamReader.cpp.

◆ readFloat32()

float zserio::BitStreamReader::readFloat32 ( )

Reads 32-bit float.

Returns
Read float32.

Definition at line 824 of file BitStreamReader.cpp.

◆ readFloat64()

double zserio::BitStreamReader::readFloat64 ( )

Reads 64-bit float double.

Returns
Read float64.

Definition at line 831 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 450 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 422 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 322 of file BitStreamReader.h.

◆ readVarInt()

int64_t zserio::BitStreamReader::readVarInt ( )

Reads signed variable integer up to 72 bits.

Returns
Read varint.

Definition at line 652 of file BitStreamReader.cpp.

◆ readVarInt16()

int16_t zserio::BitStreamReader::readVarInt16 ( )

Reads signed variable integer up to 16 bits.

Returns
Read varint16.

Definition at line 541 of file BitStreamReader.cpp.

◆ readVarInt32()

int32_t zserio::BitStreamReader::readVarInt32 ( )

Reads signed variable integer up to 32 bits.

Returns
Read varint32.

Definition at line 513 of file BitStreamReader.cpp.

◆ readVarInt64()

int64_t zserio::BitStreamReader::readVarInt64 ( )

Reads signed variable integer up to 64 bits.

Returns
Read varint64.

Definition at line 457 of file BitStreamReader.cpp.

◆ readVarSize()

uint32_t zserio::BitStreamReader::readVarSize ( )

Read variable size integer up to 40 bits.

Returns
Read varsize.

Definition at line 777 of file BitStreamReader.cpp.

◆ readVarUInt()

uint64_t zserio::BitStreamReader::readVarUInt ( )

Read unsigned variable integer up to 72 bits.

Returns
Read varuint.

Definition at line 715 of file BitStreamReader.cpp.

◆ readVarUInt16()

uint16_t zserio::BitStreamReader::readVarUInt16 ( )

Read unsigned variable integer up to 16 bits.

Returns
Read varuint16.

Definition at line 638 of file BitStreamReader.cpp.

◆ readVarUInt32()

uint32_t zserio::BitStreamReader::readVarUInt32 ( )

Read unsigned variable integer up to 32 bits.

Returns
Read varuint32.

Definition at line 611 of file BitStreamReader.cpp.

◆ readVarUInt64()

uint64_t zserio::BitStreamReader::readVarUInt64 ( )

Read unsigned variable integer up to 64 bits.

Returns
Read varuint64.

Definition at line 556 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 847 of file BitStreamReader.cpp.


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