# bm::encoder Class Reference

Memory encoding. More...

`#include <encoding.h>`

## Public Types

typedef unsigned char * | position_type

## Public Member Functions

| encoder (unsigned char *buf, unsigned size)
| Construction.
void | put_8 (unsigned char c)
| Puts one character into the encoding buffer.
void | put_16 (bm::short_t s)
| Puts short word (16 bits) into the encoding buffer.
void | put_16 (const bm::short_t *s, unsigned count)
| Method puts array of short words (16 bits) into the encoding buffer.
void | put_32 (bm::word_t w)
| Puts 32 bits word into encoding buffer.
void | put_32 (const bm::word_t *w, unsigned count)
| Encodes array of 32-bit words.
void | put_prefixed_array_32 (unsigned char c, const bm::word_t *w, unsigned count)
void | put_prefixed_array_16 (unsigned char c, const bm::short_t *s, unsigned count, bool encode_count)
unsigned | size () const
| Returns size of the current encoding stream.
unsigned char * | get_pos () const
| Get current memory stream position.
void | set_pos (unsigned char *buf_pos)
| Set current memory stream position.

## Detailed Description

Memory encoding.

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

Definition at line 45 of file encoding.h.

## Member Typedef Documentation

typedef unsigned char* bm::encoder::position_type

Definition at line 48 of file encoding.h.

## Constructor & Destructor Documentation

bm::encoder::encoder | ( | unsigned char * | buf,
|  | unsigned | size |
| ) |  |  | `[inline]`

Construction.

Parameters:

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

Definition at line 509 of file encoding.h.

## Member Function Documentation

encoder::position_type bm::encoder::get_pos | ( |  | ) | const`[inline]`

Get current memory stream position.

Definition at line 611 of file encoding.h.

Referenced by bm::serializer< BV >::gamma_gap_array(), and bm::serializer< BV >::gamma_gap_block().

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

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

Referenced by bm::serializer< BV >::encode_bit_interval(), bm::serializer< BV >::encode_gap_block(), bm::serializer< BV >::encode_header(), bm::serializer< BV >::gamma_gap_block(), put_prefixed_array_16(), and bm::serializer< BV >::serialize().

void bm::encoder::put_32 | ( | const bm::word_t * | w,
|  | unsigned | count |
| ) |  |  | `[inline]`

Encodes array of 32-bit words.

Definition at line 647 of file encoding.h.

BMFORCEINLINE void bm::encoder::put_32 | ( | bm::word_t | w | ) |

Puts 32 bits word into encoding buffer.

Parameters:

  | w | - word to encode.

Definition at line 630 of file encoding.h.

Referenced by bm::serializer< BV >::encode_bit_interval(), bm::serializer< BV >::encode_header(), and put_prefixed_array_32().

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

Puts one character into the encoding buffer.

Parameters:

  | c | - character to encode

Definition at line 544 of file encoding.h.

Referenced by bm::serializer< BV >::encode_bit_interval(), bm::serializer< BV >::encode_gap_block(), bm::serializer< BV >::encode_header(), bm::serializer< BV >::gamma_gap_array(), bm::serializer< BV >::gamma_gap_block(), put_prefixed_array_16(), put_prefixed_array_32(), and bm::serializer< BV >::serialize().

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

References put_16(), and put_8().

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

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

References put_32(), and put_8().

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

void bm::encoder::set_pos | ( | unsigned char * | buf_pos | ) | `[inline]`

Set current memory stream position.

Definition at line 619 of file encoding.h.

Referenced by bm::serializer< BV >::gamma_gap_array(), and bm::serializer< BV >::gamma_gap_block().

unsigned bm::encoder::size | ( |  | ) | const`[inline]`

Returns size of the current encoding stream.

Definition at line 603 of file encoding.h.

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

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

- encoding.h