1 #ifndef ZSERIO_BIT_STREAM_READER_H_INC 2 #define ZSERIO_BIT_STREAM_READER_H_INC 103 template <
typename ALLOC>
240 template <
typename ALLOC = std::allocator<u
int8_t>>
243 const size_t len =
static_cast<size_t>(
readVarSize());
245 if ((beginBitPosition & 0x07U) != 0)
250 for (
size_t i = 0; i < len; ++i)
251 value.push_back(readByte());
270 template <
typename ALLOC = std::allocator<
char>>
273 const size_t len =
static_cast<size_t>(
readVarSize());
275 if ((beginBitPosition & 0x07U) != 0)
280 for (
size_t i = 0; i < len; ++i)
281 value.push_back(static_cast<char>(readByte()));
307 template <
typename ALLOC = std::allocator<u
int8_t>>
310 const size_t bitSize =
static_cast<size_t>(
readVarSize());
311 const size_t numBytesToRead = bitSize / 8;
312 const uint8_t numRestBits =
static_cast<uint8_t
>(bitSize - numBytesToRead * 8);
317 if ((beginBitPosition & 0x07U) != 0)
321 *it = static_cast<uint8_t>(
readBits(8));
328 std::copy(sourceIt, sourceIt + numBytesToRead, buffer.
begin());
332 *itEnd =
static_cast<uint8_t
>(
readBits(numRestBits) << (8U - numRestBits));
356 void alignTo(
size_t alignment);
373 #endif // ifndef ZSERIO_BIT_STREAM_READER_H_INC uint64_t readBits64(uint8_t numBits=64)
uint8_t numBits(uint64_t numValues)
BasicBitBuffer< RebindAlloc< ALLOC, uint8_t > > readBitBuffer(const ALLOC &allocator=ALLOC())
Span< const uint8_t > buffer
uint32_t readBits(uint8_t numBits=32)
BitStreamReader(const BasicBitBuffer< ALLOC > &bitBuffer)
BitPosType getBitPosition() const
~BitStreamReader()=default
int64_t readSignedBits64(uint8_t numBits=64)
const BitPosType bufferBitSize
ReaderContext & operator=(const ReaderContext &)=delete
void alignTo(size_t alignment)
std::vector< T, RebindAlloc< ALLOC, T >> vector
ReaderContext(Span< const uint8_t > readBuffer, size_t readBufferBitSize)
BitStreamReader(const uint8_t *buffer, size_t bufferByteSize)
constexpr iterator begin() const noexcept
vector< uint8_t, ALLOC > readBytes(const ALLOC &alloc=ALLOC())
std::basic_string< char, std::char_traits< char >, RebindAlloc< ALLOC, char >> string
Span< const uint8_t > getData() const
int32_t readSignedBits(uint8_t numBits=32)
size_t getBufferBitSize() const
void setBitPosition(BitPosType position)
string< ALLOC > readString(const ALLOC &alloc=ALLOC())