BitMagic-C++
Public Types | Public Member Functions
bm::encoder Class Reference

Memory encoding. More...

#include <encoding.h>

Public Types

typedef unsigned char * position_type
 

Public Member Functions

 encoder (unsigned char *buf, size_t size) BMNOEXCEPT
 Construction. More...
 
void put_8 (unsigned char c) BMNOEXCEPT
 Puts one character into the encoding buffer. More...
 
void put_16 (bm::short_t s) BMNOEXCEPT
 Puts short word (16 bits) into the encoding buffer. More...
 
void put_16 (const bm::short_t *s, unsigned count) BMNOEXCEPT
 Method puts array of short words (16 bits) into the encoding buffer. More...
 
void put_24 (bm::word_t w) BMNOEXCEPT
 Puts 24 bits word into encoding buffer. More...
 
void put_32 (bm::word_t w) BMNOEXCEPT
 Puts 32 bits word into encoding buffer. More...
 
void put_32 (const bm::word_t *w, unsigned count) BMNOEXCEPT
 Encodes array of 32-bit words. More...
 
void put_48 (bm::id64_t w) BMNOEXCEPT
 Puts 48 bits word into encoding buffer. More...
 
void put_64 (bm::id64_t w) BMNOEXCEPT
 Puts 64 bits word into encoding buffer. More...
 
void put_prefixed_array_32 (unsigned char c, const bm::word_t *w, unsigned count) BMNOEXCEPT
 Encode 8-bit prefix + an array. More...
 
void put_prefixed_array_16 (unsigned char c, const bm::short_t *s, unsigned count, bool encode_count) BMNOEXCEPT
 Encode 8-bit prefix + an array. More...
 
void memcpy (const unsigned char *src, size_t count) BMNOEXCEPT
 copy bytes into target buffer or just rewind if src is NULL More...
 
size_t size () const BMNOEXCEPT
 Returns size of the current encoding stream. More...
 
unsigned char * get_pos () const BMNOEXCEPT
 Get current memory stream position. More...
 
void set_pos (unsigned char *buf_pos) BMNOEXCEPT
 Set current memory stream position. More...
 

Detailed Description

Memory encoding.

Class for encoding data into memory. Class handles aligment issues with the integer data types.

Definition at line 49 of file encoding.h.

Member Typedef Documentation

◆ position_type

typedef unsigned char* bm::encoder::position_type

Definition at line 52 of file encoding.h.

Constructor & Destructor Documentation

◆ encoder()

bm::encoder::encoder ( unsigned char *  buf,
size_t  size 
)
inline

Construction.

Parameters
buf- memory buffer pointer.
size- size of the buffer

Definition at line 384 of file encoding.h.

Member Function Documentation

◆ get_pos()

encoder::position_type bm::encoder::get_pos ( ) const
inline

Get current memory stream position.

Definition at line 493 of file encoding.h.

◆ memcpy()

void bm::encoder::memcpy ( const unsigned char *  src,
size_t  count 
)
inline

copy bytes into target buffer or just rewind if src is NULL

Definition at line 472 of file encoding.h.

References BM_ASSERT.

Referenced by bm::decoder::get_16(), bm::decoder::get_32(), bm::decoder::get_64(), bm::decoder_base::memcpy(), put_16(), put_32(), put_64(), and bm::sparse_vector_serializer< SV >::serialize().

◆ put_16() [1/2]

BMFORCEINLINE void bm::encoder::put_16 ( bm::short_t  s)

Puts short word (16 bits) into the encoding buffer.

Parameters
s- short word to encode

Definition at line 430 of file encoding.h.

References memcpy().

Referenced by bm::serializer< bvector_type >::encode_gap_block(), put_prefixed_array_16(), and bm::serializer< bvector_type >::serialize().

◆ put_16() [2/2]

void bm::encoder::put_16 ( const bm::short_t s,
unsigned  count 
)
inline

Method puts array of short words (16 bits) into the encoding buffer.

Definition at line 445 of file encoding.h.

References memcpy().

◆ put_24()

void bm::encoder::put_24 ( bm::word_t  w)
inline

Puts 24 bits word into encoding buffer.

Parameters
w- word to encode.

Definition at line 511 of file encoding.h.

References BM_ASSERT.

◆ put_32() [1/2]

void bm::encoder::put_32 ( bm::word_t  w)
inline

Puts 32 bits word into encoding buffer.

Parameters
w- word to encode.

Definition at line 527 of file encoding.h.

References memcpy().

Referenced by put_prefixed_array_32(), and bm::serializer< bvector_type >::serialize().

◆ put_32() [2/2]

void bm::encoder::put_32 ( const bm::word_t w,
unsigned  count 
)
inline

Encodes array of 32-bit words.

Definition at line 583 of file encoding.h.

References memcpy().

◆ put_48()

void bm::encoder::put_48 ( bm::id64_t  w)
inline

Puts 48 bits word into encoding buffer.

Parameters
w- word to encode.

Definition at line 545 of file encoding.h.

References BM_ASSERT.

◆ put_64()

void bm::encoder::put_64 ( bm::id64_t  w)
inline

Puts 64 bits word into encoding buffer.

Parameters
w- word to encode.

Definition at line 562 of file encoding.h.

References memcpy().

Referenced by bm::serializer< bvector_type >::serialize(), and bm::sparse_vector_serializer< SV >::serialize().

◆ put_8()

BMFORCEINLINE void bm::encoder::put_8 ( unsigned char  c)

Puts one character into the encoding buffer.

Parameters
c- character to encode

Definition at line 420 of file encoding.h.

Referenced by bm::serializer< bvector_type >::encode_gap_block(), put_prefixed_array_16(), put_prefixed_array_32(), bm::serializer< bvector_type >::serialize(), and bm::sparse_vector_serializer< SV >::serialize().

◆ put_prefixed_array_16()

void bm::encoder::put_prefixed_array_16 ( unsigned char  c,
const bm::short_t s,
unsigned  count,
bool  encode_count 
)
inline

Encode 8-bit prefix + an array.

Definition at line 403 of file encoding.h.

References put_16(), and put_8().

◆ put_prefixed_array_32()

void bm::encoder::put_prefixed_array_32 ( unsigned char  c,
const bm::word_t w,
unsigned  count 
)
inline

Encode 8-bit prefix + an array.

Definition at line 392 of file encoding.h.

References put_32(), and put_8().

Referenced by bm::serializer< bvector_type >::serialize().

◆ set_pos()

void bm::encoder::set_pos ( unsigned char *  buf_pos)
inline

Set current memory stream position.

Definition at line 501 of file encoding.h.

◆ size()

size_t bm::encoder::size ( ) const
inline

Returns size of the current encoding stream.

Definition at line 485 of file encoding.h.

Referenced by bm::serializer< bvector_type >::serialize(), and bm::sparse_vector_serializer< SV >::serialize().


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