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_h64 (bm::id64_t w) BMNOEXCEPT
 Puts 64 bits word into encoding buffer with h-compression. More...
 
void put_8_16_32 (unsigned w, unsigned char c8, unsigned char c16, unsigned char c32) BMNOEXCEPT
 but gat plus value based on its VBR evaluation 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.

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 398 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 537 of file encoding.h.

Referenced by bm::compressed_collection_serializer< CBC >::serialize().

◆ memcpy()

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

◆ 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 444 of file encoding.h.

References memcpy().

Referenced by bm::serializer< BV >::encode_gap_block(), bm::sparse_vector_serializer< SV >::encode_remap_matrix(), put_8_16_32(), put_prefixed_array_16(), and bm::serializer< BV >::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 459 of file encoding.h.

References BM_ASSERT, and 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 555 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 571 of file encoding.h.

References memcpy().

Referenced by bm::sparse_vector_serializer< SV >::encode_remap_matrix(), put_8_16_32(), put_prefixed_array_32(), bm::serializer< BV >::serialize(), and bm::sparse_vector_serializer< SV >::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 644 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 589 of file encoding.h.

References BM_ASSERT.

◆ put_64()

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

◆ put_8()

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

◆ put_8_16_32()

void bm::encoder::put_8_16_32 ( unsigned  w,
unsigned char  c8,
unsigned char  c16,
unsigned char  c32 
)
inline

but gat plus value based on its VBR evaluation

Definition at line 487 of file encoding.h.

References put_16(), put_32(), and put_8().

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

◆ put_h64()

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

Puts 64 bits word into encoding buffer with h-compression.

Parameters
w- word to encode.

Definition at line 628 of file encoding.h.

References bm::compute_h64_mask(), and put_8().

◆ 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 417 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 406 of file encoding.h.

References put_32(), and put_8().

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

◆ set_pos()

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

Set current memory stream position.

Definition at line 545 of file encoding.h.

Referenced by bm::serializer< BV >::serialize(), and bm::compressed_collection_serializer< CBC >::serialize().

◆ size()

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

Returns size of the current encoding stream.

Definition at line 529 of file encoding.h.

Referenced by bm::serializer< BV >::serialize(), bm::compressed_collection_serializer< CBC >::serialize(), and bm::sparse_vector_serializer< SV >::serialize().


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