BitMagic-C++: bm::encoder Class Reference

BitMagic-C++

Public Types | Public Member Functions
bm::encoder Class Reference
Elias Gamma Code (internal)

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.

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

## ◆ 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(), bm::sparse_vector_serializer< SV >::serialize(), and bm::compressed_collection_serializer< CBC >::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(), bm::sparse_vector_serializer< SV >::serialize(), and bm::compressed_collection_serializer< CBC >::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(), bm::sparse_vector_serializer< SV >::serialize(), and bm::compressed_collection_serializer< CBC >::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.

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

## ◆ 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(), bm::sparse_vector_serializer< SV >::serialize(), and bm::compressed_collection_serializer< CBC >::serialize().

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

- encoding.h