BitMagic-C++
|
Memory encoding. More...
#include <encoding.h>
Public Types | |
typedef unsigned char * | position_type |
Public Member Functions | |
encoder (unsigned char *buf, size_t size) | |
Construction. More... | |
void | put_8 (unsigned char c) |
Puts one character into the encoding buffer. More... | |
void | put_16 (bm::short_t s) |
Puts short word (16 bits) into the encoding buffer. More... | |
void | put_16 (const bm::short_t *s, unsigned count) |
Method puts array of short words (16 bits) into the encoding buffer. More... | |
void | put_32 (bm::word_t w) |
Puts 32 bits word into encoding buffer. More... | |
void | put_32 (const bm::word_t *w, unsigned count) |
Encodes array of 32-bit words. More... | |
void | put_64 (bm::id64_t w) |
Puts 64 bits word into encoding buffer. More... | |
void | put_prefixed_array_32 (unsigned char c, const bm::word_t *w, unsigned count) |
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) |
Encode 8-bit prefix + an array. More... | |
void | memcpy (const unsigned char *src, size_t count) |
copy bytes into target buffer or just rewind if src is NULL More... | |
size_t | size () const |
Returns size of the current encoding stream. More... | |
unsigned char * | get_pos () const |
Get current memory stream position. More... | |
void | set_pos (unsigned char *buf_pos) |
Set current memory stream position. More... | |
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.
typedef unsigned char* bm::encoder::position_type |
Definition at line 52 of file encoding.h.
|
inline |
Construction.
buf | - memory buffer pointer. |
size | - size of the buffer |
Definition at line 371 of file encoding.h.
|
inline |
Get current memory stream position.
Definition at line 480 of file encoding.h.
Referenced by bm::serializer< bvector_type >::bienc_gap_bit_block(), bm::serializer< bvector_type >::gamma_gap_array(), bm::serializer< bvector_type >::gamma_gap_block(), bm::serializer< bvector_type >::interpolated_arr_bit_block(), bm::serializer< bvector_type >::interpolated_encode_gap_block(), and bm::serializer< bvector_type >::interpolated_gap_array().
|
inline |
copy bytes into target buffer or just rewind if src is NULL
Definition at line 459 of file encoding.h.
References BM_ASSERT.
Referenced by bm::decoder_base::memcpy(), put_16(), put_32(), put_64(), bm::decoder_base::seek(), and bm::sparse_vector_serializer< SV >::serialize().
BMFORCEINLINE void bm::encoder::put_16 | ( | bm::short_t | s | ) |
Puts short word (16 bits) into the encoding buffer.
s | - short word to encode |
Definition at line 417 of file encoding.h.
References memcpy().
Referenced by bm::serializer< bvector_type >::bienc_gap_bit_block(), bm::serializer< bvector_type >::encode_bit_interval(), bm::serializer< bvector_type >::encode_gap_block(), bm::serializer< bvector_type >::encode_header(), bm::serializer< bvector_type >::gamma_gap_block(), bm::serializer< bvector_type >::interpolated_arr_bit_block(), bm::serializer< bvector_type >::interpolated_encode_gap_block(), bm::serializer< bvector_type >::interpolated_gap_array(), put_prefixed_array_16(), and bm::serializer< bvector_type >::serialize().
|
inline |
Method puts array of short words (16 bits) into the encoding buffer.
Definition at line 432 of file encoding.h.
References memcpy().
|
inline |
Puts 32 bits word into encoding buffer.
w | - word to encode. |
Definition at line 499 of file encoding.h.
References memcpy().
Referenced by bm::serializer< bvector_type >::encode_bit_digest(), bm::serializer< bvector_type >::encode_bit_interval(), bm::serializer< bvector_type >::encode_header(), and put_prefixed_array_32().
|
inline |
|
inline |
Puts 64 bits word into encoding buffer.
w | - word to encode. |
Definition at line 517 of file encoding.h.
References memcpy().
Referenced by bm::serializer< bvector_type >::encode_bit_digest(), bm::serializer< bvector_type >::encode_header(), and bm::sparse_vector_serializer< SV >::serialize().
BMFORCEINLINE void bm::encoder::put_8 | ( | unsigned char | c | ) |
Puts one character into the encoding buffer.
c | - character to encode |
Definition at line 407 of file encoding.h.
Referenced by bm::serializer< bvector_type >::bienc_gap_bit_block(), bm::serializer< bvector_type >::encode_bit_digest(), bm::serializer< bvector_type >::encode_bit_interval(), bm::serializer< bvector_type >::encode_gap_block(), bm::serializer< bvector_type >::encode_header(), bm::serializer< bvector_type >::gamma_gap_array(), bm::serializer< bvector_type >::gamma_gap_block(), bm::serializer< bvector_type >::interpolated_arr_bit_block(), bm::serializer< bvector_type >::interpolated_encode_gap_block(), bm::serializer< bvector_type >::interpolated_gap_array(), put_prefixed_array_16(), put_prefixed_array_32(), bm::serializer< bvector_type >::serialize(), and bm::sparse_vector_serializer< SV >::serialize().
|
inline |
Encode 8-bit prefix + an array.
Definition at line 390 of file encoding.h.
References put_16(), and put_8().
Referenced by bm::serializer< bvector_type >::encode_bit_array(), bm::serializer< bvector_type >::gamma_gap_array(), and bm::serializer< bvector_type >::interpolated_gap_array().
|
inline |
Encode 8-bit prefix + an array.
Definition at line 379 of file encoding.h.
References put_32(), and put_8().
Referenced by bm::serializer< bvector_type >::encode_bit_digest(), bm::serializer< bvector_type >::gamma_arr_bit_block(), and bm::serializer< bvector_type >::serialize().
|
inline |
Set current memory stream position.
Definition at line 488 of file encoding.h.
Referenced by bm::serializer< bvector_type >::bienc_gap_bit_block(), bm::serializer< bvector_type >::gamma_gap_array(), bm::serializer< bvector_type >::gamma_gap_block(), bm::serializer< bvector_type >::interpolated_arr_bit_block(), bm::serializer< bvector_type >::interpolated_encode_gap_block(), and bm::serializer< bvector_type >::interpolated_gap_array().
|
inline |
Returns size of the current encoding stream.
Definition at line 472 of file encoding.h.
Referenced by bm::serializer< bvector_type >::serialize(), and bm::sparse_vector_serializer< SV >::serialize().