BitMagic-C++
bm::decoder Class Reference

Class for decoding data from memory buffer. More...

#include <encoding.h>

Inheritance diagram for bm::decoder:
Collaboration diagram for bm::decoder:

Public Member Functions

 decoder (const unsigned char *buf) BMNOEXCEPT
 Construction.
 
bm::short_t get_16 () BMNOEXCEPT
 Reads 16-bit word from the decoding buffer.
 
bm::word_t get_24 () BMNOEXCEPT
 Reads 32-bit word from the decoding buffer.
 
bm::word_t get_32 () BMNOEXCEPT
 Reads 32-bit word from the decoding buffer.
 
bm::id64_t get_48 () BMNOEXCEPT
 Reads 64-bit word from the decoding buffer.
 
bm::id64_t get_64 () BMNOEXCEPT
 Reads 64-bit word from the decoding buffer.
 
void get_32 (bm::word_t *w, unsigned count) BMNOEXCEPT
 Reads block of 32-bit words from the decoding buffer.
 
bool get_32_OR (bm::word_t *w, unsigned count) BMNOEXCEPT
 Reads block of 32-bit words from the decoding buffer and ORs to the destination.
 
void get_32_AND (bm::word_t *w, unsigned count) BMNOEXCEPT
 Reads block of 32-bit words from the decoding buffer and ANDs to the destination.
 
void get_16 (bm::short_t *s, unsigned count) BMNOEXCEPT
 Reads block of 32-bit words from the decoding buffer.
 
- Public Member Functions inherited from bm::decoder_base
 decoder_base (const unsigned char *buf) BMNOEXCEPT
 
unsigned char get_8 () BMNOEXCEPT
 Reads character from the decoding buffer.
 
size_t size () const BMNOEXCEPT
 Returns size of the current decoding stream.
 
void seek (int delta) BMNOEXCEPT
 change current position
 
void memcpy (unsigned char *dst, size_t count) BMNOEXCEPT
 read bytes from the decode buffer
 
const unsigned char * get_pos () const BMNOEXCEPT
 Return current buffer pointer.
 
void set_pos (const unsigned char *pos) BMNOEXCEPT
 Set current buffer pointer.
 

Additional Inherited Members

- Protected Attributes inherited from bm::decoder_base
const unsigned char * buf_
 
const unsigned char * start_
 

Detailed Description

Class for decoding data from memory buffer.

Properly handles aligment issues with integer data types.

Definition at line 117 of file encoding.h.

Constructor & Destructor Documentation

◆ decoder()

bm::decoder::decoder ( const unsigned char * buf)
inline

Construction.

Parameters
buf- pointer to the decoding memory.

Definition at line 630 of file encoding.h.

Member Function Documentation

◆ get_16() [1/2]

◆ get_16() [2/2]

void bm::decoder::get_16 ( bm::short_t * s,
unsigned count )
inline

Reads block of 32-bit words from the decoding buffer.

Parameters
s- pointer on memory block to read into.
count- size of memory block in words.

Definition at line 840 of file encoding.h.

References bm::encoder::memcpy().

◆ get_24()

bm::word_t bm::decoder::get_24 ( )
inline

Reads 32-bit word from the decoding buffer.

Definition at line 655 of file encoding.h.

Referenced by bm::deseriaizer_base< DEC, BLOCK_IDX >::try_skip().

◆ get_32() [1/2]

BMFORCEINLINE bm::word_t bm::decoder::get_32 ( )

Reads 32-bit word from the decoding buffer.

Definition at line 668 of file encoding.h.

References bm::encoder::memcpy().

Referenced by bm::deseriaizer_base< DEC, BLOCK_IDX >::try_skip().

◆ get_32() [2/2]

void bm::decoder::get_32 ( bm::word_t * w,
unsigned count )
inline

Reads block of 32-bit words from the decoding buffer.

Parameters
w- pointer on memory block to read into.
count- size of memory block in words.

Definition at line 729 of file encoding.h.

References bm::encoder::memcpy().

◆ get_32_AND()

void bm::decoder::get_32_AND ( bm::word_t * w,
unsigned count )
inline

Reads block of 32-bit words from the decoding buffer and ANDs to the destination.

Parameters
w- pointer on memory block to read into
count- should match bm::set_block_size

Definition at line 802 of file encoding.h.

References bm::sse2_and_arr_unal().

◆ get_32_OR()

bool bm::decoder::get_32_OR ( bm::word_t * w,
unsigned count )
inline

Reads block of 32-bit words from the decoding buffer and ORs to the destination.

Parameters
w- pointer on memory block to read into
count- should match bm::set_block_size

Definition at line 761 of file encoding.h.

References bm::sse2_or_arr_unal().

◆ get_48()

bm::id64_t bm::decoder::get_48 ( )
inline

Reads 64-bit word from the decoding buffer.

Definition at line 686 of file encoding.h.

Referenced by bm::deseriaizer_base< DEC, BLOCK_IDX >::try_skip().

◆ get_64()


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