# bm::serial_stream_iterator< DEC > Class Template Reference
[bvector serialization]

Serialization stream iterator. More...

`#include <bmserial.h>`

Inheritance diagram for bm::serial_stream_iterator< DEC >:
[legend]
Collaboration diagram for bm::serial_stream_iterator< DEC >:
[legend]

## Public Types

enum | iterator_state { e_unknown = 0, e_list_ids, e_blocks, e_zero_blocks, e_one_blocks, e_bit_block, e_gap_block }
| iterator is a state machine, this enum encodes its key value More...
typedef deseriaizer_base< DEC > ::decoder_type | decoder_type
typedef unsigned(serial_stream_iterator < DEC >::* | get_bit_func_type )(bm::word_t *, bm::word_t *)
| member function pointer for bitset-bitset get operations

## Public Member Functions

| serial_stream_iterator (const unsigned char *buf)
unsigned | bv_size () const
| serialized bitvector size
bool | is_eof () const
| Returns true if end of bit-stream reached.
void | next ()
| get next block
void | skip_mono_blocks ()
| skip all zero or all-one blocks
unsigned | get_bit_block (bm::word_t *dst_block, bm::word_t *tmp_block, set_operation op)
| read bit block, using logical operation
void | get_gap_block (bm::gap_word_t *dst_block)
| Read gap block data (with head).
unsigned | dec_size () const
| Return current decoder size.
decoder_type & | decoder ()
| Get low level access to the decoder (use carefully).
iterator_state | state () const
| Returns iterator internal state.
iterator_state | get_state () const
unsigned | get_id_count () const
| Number of ids in the inverted list (valid for e_list_ids).
bm::id_t | get_id () const
| Get last id from the id list.
unsigned | block_idx () const
| Get current block index.
unsigned | get_bit_block_ASSIGN (bm::word_t *dst_block, bm::word_t *tmp_block)
unsigned | get_bit_block_OR (bm::word_t *dst_block, bm::word_t *tmp_block)
unsigned | get_bit_block_AND (bm::word_t *dst_block, bm::word_t *tmp_block)
unsigned | get_bit_block_SUB (bm::word_t *dst_block, bm::word_t *tmp_block)
unsigned | get_bit_block_XOR (bm::word_t *dst_block, bm::word_t *tmp_block)
unsigned | get_bit_block_COUNT (bm::word_t *dst_block, bm::word_t *tmp_block)
unsigned | get_bit_block_COUNT_AND (bm::word_t *dst_block, bm::word_t *tmp_block)
unsigned | get_bit_block_COUNT_OR (bm::word_t *dst_block, bm::word_t *tmp_block)
unsigned | get_bit_block_COUNT_XOR (bm::word_t *dst_block, bm::word_t *tmp_block)
unsigned | get_bit_block_COUNT_SUB_AB (bm::word_t *dst_block, bm::word_t *tmp_block)
unsigned | get_bit_block_COUNT_SUB_BA (bm::word_t *dst_block, bm::word_t *tmp_block)
unsigned | get_bit_block_COUNT_A (bm::word_t *dst_block, bm::word_t *tmp_block)
unsigned | get_bit_block_COUNT_B (bm::word_t *dst_block, bm::word_t *tmp_block)
unsigned | get_arr_bit (bm::word_t *dst_block, bool clear_target=true)
| Get array of bits out of the decoder into bit block (Converts inverted list into bits) Returns number of words (bits) being read.
unsigned | get_block_type () const
| Get current block type.
unsigned | get_bit ()

## Protected Attributes

get_bit_func_type | bit_func_table_ [bm::set_END]
decoder_type | decoder_
bool | end_of_stream_
unsigned | bv_size_
iterator_state | state_
unsigned | id_cnt_
| Id counter for id list.
bm::id_t | last_id_
| Last id from the id list.
gap_word_t | glevels_ [bm::gap_levels]
| GAP levels.
unsigned | block_type_
| current block type
unsigned | block_idx_
| current block index
unsigned | mono_block_cnt_
| number of 0 or 1 blocks
gap_word_t | gap_head_

## Detailed Description

### template<class DEC>
class bm::serial_stream_iterator< DEC >

Serialization stream iterator.

Iterates blocks and control tokens of serialized bit-stream

Definition at line 371 of file bmserial.h.

## Member Typedef Documentation

template<class DEC>

typedef deseriaizer_base<DEC>::decoder_type bm::serial_stream_iterator< DEC >::decoder_type

Reimplemented from bm::deseriaizer_base< DEC >.

Definition at line 374 of file bmserial.h.

template<class DEC>

typedef unsigned(serial_stream_iterator<DEC>::* bm::serial_stream_iterator< DEC >::get_bit_func_type)(bm::word_t *, bm::word_t *)

member function pointer for bitset-bitset get operations

Definition at line 438 of file bmserial.h.

## Member Enumeration Documentation

template<class DEC>

enum bm::serial_stream_iterator::iterator_state

iterator is a state machine, this enum encodes its key value

Enumerator:

  e_unknown |
  e_list_ids | plain int array
  e_blocks | stream of blocks
  e_zero_blocks | one or more zero bit blocks
  e_one_blocks | one or more all-1 bit blocks
  e_bit_block | one bit block
  e_gap_block | one gap block

Definition at line 408 of file bmserial.h.

## Constructor & Destructor Documentation

template<class DEC >

bm::serial_stream_iterator< DEC >::serial_stream_iterator | ( | const unsigned char * | buf | ) | `[inline]`

Definition at line 1681 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::bit_func_table_, bm::BM_HM_ID_LIST, bm::BM_HM_NO_BO, bm::BM_HM_NO_GAPL, bm::BM_HM_RESIZE, bm::serial_stream_iterator< DEC >::bv_size_, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_blocks, bm::serial_stream_iterator< DEC >::e_list_ids, bm::gap_levels, bm::serial_stream_iterator< DEC >::glevels_, bm::serial_stream_iterator< DEC >::id_cnt_, bm::serial_stream_iterator< DEC >::next(), bm::set_AND, bm::set_ASSIGN, bm::set_COUNT, bm::set_COUNT_A, bm::set_COUNT_AND, bm::set_COUNT_B, bm::set_COUNT_OR, bm::set_COUNT_SUB_AB, bm::set_COUNT_SUB_BA, bm::set_COUNT_XOR, bm::set_OR, bm::set_SUB, bm::set_XOR, and bm::serial_stream_iterator< DEC >::state_.

## Member Function Documentation

template<class DEC>

unsigned bm::serial_stream_iterator< DEC >::block_idx | ( |  | ) | const`[inline]`

Get current block index.

Definition at line 431 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::block_idx_.

template<class DEC>

unsigned bm::serial_stream_iterator< DEC >::bv_size | ( |  | ) | const`[inline]`

serialized bitvector size

Definition at line 379 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::bv_size_.

template<class DEC>

unsigned bm::serial_stream_iterator< DEC >::dec_size | ( |  | ) | const`[inline]`

Return current decoder size.

Definition at line 400 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::decoder_.

template<class DEC>

decoder_type& bm::serial_stream_iterator< DEC >::decoder | ( |  | ) | `[inline]`

Get low level access to the decoder (use carefully).

Definition at line 403 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::decoder_.

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_arr_bit | ( | bm::word_t * | dst_block,
|  | bool | clear_target = `true` |
| ) |  |  | `[inline]`

Get array of bits out of the decoder into bit block (Converts inverted list into bits) Returns number of words (bits) being read.

Definition at line 2711 of file bmserial.h.

References bm::bit_block_set(), bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::set_bit(), bm::set_block_arrbit, and bm::set_block_bit_1bit.

Referenced by bm::serial_stream_iterator< DEC >::get_bit_block_AND(), bm::serial_stream_iterator< DEC >::get_bit_block_ASSIGN(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_A(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_AND(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_OR(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_AB(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_BA(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_XOR(), bm::serial_stream_iterator< DEC >::get_bit_block_OR(), bm::serial_stream_iterator< DEC >::get_bit_block_SUB(), and bm::serial_stream_iterator< DEC >::get_bit_block_XOR().

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit | ( |  | ) | `[inline]`

Definition at line 2749 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::block_idx_, bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_blocks, bm::set_block_bit_1bit, and bm::serial_stream_iterator< DEC >::state_.

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit_block | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block,
|  | set_operation | op |
| ) |  |  | `[inline]`

read bit block, using logical operation

Definition at line 2778 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::bit_func_table_, bm::serial_stream_iterator< DEC >::block_idx_, BM_ASSERT, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::e_blocks, and bm::serial_stream_iterator< DEC >::state_.

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit_block_AND | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block |
| ) |  |  | `[inline]`

Definition at line 2034 of file bmserial.h.

References bm::bit_block_and(), bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::set_block_arrbit, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_interval, bm::set_block_size, and bm::serial_stream_iterator< DEC >::state_.

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit_block_ASSIGN | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block |
| ) |  |  | `[inline]`

Definition at line 1910 of file bmserial.h.

References bm::bit_block_set(), bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::set_block_arrbit, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_interval, bm::set_block_gapbit, bm::set_block_size, and bm::serial_stream_iterator< DEC >::state_.

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit_block_COUNT | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block |
| ) |  |  | `[inline]`

Definition at line 2224 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::set_block_arrbit, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_interval, bm::set_block_size, bm::serial_stream_iterator< DEC >::state_, and bm::word_bitcount().

Referenced by bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_B().

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_A | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block |
| ) |  |  | `[inline]`

Definition at line 2281 of file bmserial.h.

References bm::bit_block_calc_count(), bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::set_block_arrbit, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_interval, bm::set_block_size, and bm::serial_stream_iterator< DEC >::state_.

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_AND | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block |
| ) |  |  | `[inline]`

Definition at line 2344 of file bmserial.h.

References bm::bit_operation_and_count(), bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::set_block_arrbit, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_interval, bm::set_block_size, bm::serial_stream_iterator< DEC >::state_, and bm::word_bitcount().

template<class DEC>

unsigned bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_B | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block |
| ) |  |  | `[inline]`

Definition at line 465 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::get_bit_block_COUNT().

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_OR | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block |
| ) |  |  | `[inline]`

Definition at line 2403 of file bmserial.h.

References bm::bit_operation_or_count(), bm::bit_recomb(), bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::set_block_arrbit, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_interval, bm::set_block_size, bm::serial_stream_iterator< DEC >::state_, bm::bitblock_sum_adapter::sum(), and bm::word_bitcount().

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_AB | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block |
| ) |  |  | `[inline]`

Definition at line 2559 of file bmserial.h.

References bm::bit_operation_sub_count(), bm::bit_recomb(), bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::set_block_arrbit, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_interval, bm::set_block_size, bm::serial_stream_iterator< DEC >::state_, bm::bitblock_sum_adapter::sum(), and bm::word_bitcount().

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_BA | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block |
| ) |  |  | `[inline]`

Definition at line 2638 of file bmserial.h.

References bm::bit_operation_sub_count(), bm::bit_recomb(), bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::set_block_arrbit, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_interval, bm::set_block_size, bm::serial_stream_iterator< DEC >::state_, bm::bitblock_sum_adapter::sum(), and bm::word_bitcount().

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_XOR | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block |
| ) |  |  | `[inline]`

Definition at line 2481 of file bmserial.h.

References bm::bit_operation_xor_count(), bm::bit_recomb(), bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::set_block_arrbit, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_interval, bm::set_block_size, bm::serial_stream_iterator< DEC >::state_, bm::bitblock_sum_adapter::sum(), and bm::word_bitcount().

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit_block_OR | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block |
| ) |  |  | `[inline]`

Definition at line 1972 of file bmserial.h.

References bm::bit_recomb(), bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::set_block_arrbit, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_interval, bm::set_block_size, and bm::serial_stream_iterator< DEC >::state_.

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit_block_SUB | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block |
| ) |  |  | `[inline]`

Definition at line 2165 of file bmserial.h.

References bm::bit_block_sub(), bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::set_block_arrbit, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_interval, bm::set_block_size, and bm::serial_stream_iterator< DEC >::state_.

template<class DEC >

unsigned bm::serial_stream_iterator< DEC >::get_bit_block_XOR | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block |
| ) |  |  | `[inline]`

Definition at line 2105 of file bmserial.h.

References bm::bit_block_xor(), bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::set_block_arrbit, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_interval, bm::set_block_size, and bm::serial_stream_iterator< DEC >::state_.

template<class DEC>

unsigned bm::serial_stream_iterator< DEC >::get_block_type | ( |  | ) | const`[inline]`

Get current block type.

Definition at line 477 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::block_type_.

template<class DEC >

void bm::serial_stream_iterator< DEC >::get_gap_block | ( | bm::gap_word_t * | dst_block | ) | `[inline]`

Read gap block data (with head).

Definition at line 2760 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::block_idx_, bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_blocks, bm::serial_stream_iterator< DEC >::e_gap_block, bm::serial_stream_iterator< DEC >::gap_head_, bm::deseriaizer_base< DEC >::read_gap_block(), bm::set_block_bit_1bit, and bm::serial_stream_iterator< DEC >::state_.

template<class DEC>

bm::id_t bm::serial_stream_iterator< DEC >::get_id | ( |  | ) | const`[inline]`

Get last id from the id list.

Definition at line 428 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::last_id_.

template<class DEC>

unsigned bm::serial_stream_iterator< DEC >::get_id_count | ( |  | ) | const`[inline]`

Number of ids in the inverted list (valid for e_list_ids).

Definition at line 425 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::id_cnt_.

template<class DEC>

iterator_state bm::serial_stream_iterator< DEC >::get_state | ( |  | ) | const`[inline]`

Definition at line 423 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::state_.

template<class DEC>

bool bm::serial_stream_iterator< DEC >::is_eof | ( |  | ) | const`[inline]`

Returns true if end of bit-stream reached.

Definition at line 382 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::end_of_stream_.

Referenced by bm::serial_stream_iterator< DEC >::next().

template<class DEC >

void bm::serial_stream_iterator< DEC >::next | ( |  | ) | `[inline]`

get next block

Definition at line 1762 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::block_idx_, bm::serial_stream_iterator< DEC >::block_type_, BM_ASSERT, bm::serial_stream_iterator< DEC >::decoder_, bm::serial_stream_iterator< DEC >::e_bit_block, bm::serial_stream_iterator< DEC >::e_blocks, bm::serial_stream_iterator< DEC >::e_gap_block, bm::serial_stream_iterator< DEC >::e_list_ids, bm::serial_stream_iterator< DEC >::e_one_blocks, bm::serial_stream_iterator< DEC >::e_unknown, bm::serial_stream_iterator< DEC >::e_zero_blocks, bm::serial_stream_iterator< DEC >::end_of_stream_, bm::serial_stream_iterator< DEC >::gap_head_, bm::serial_stream_iterator< DEC >::id_cnt_, bm::serial_stream_iterator< DEC >::is_eof(), bm::serial_stream_iterator< DEC >::last_id_, bm::serial_stream_iterator< DEC >::mono_block_cnt_, bm::set_block_16one, bm::set_block_16zero, bm::set_block_1one, bm::set_block_1zero, bm::set_block_32one, bm::set_block_32zero, bm::set_block_8one, bm::set_block_8zero, bm::set_block_aone, bm::set_block_arrbit, bm::set_block_arrgap, bm::set_block_arrgap_egamma, bm::set_block_arrgap_egamma_inv, bm::set_block_arrgap_inv, bm::set_block_azero, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_interval, bm::set_block_end, bm::set_block_gap, bm::set_block_gap_egamma, bm::set_block_gapbit, bm::set_total_blocks, and bm::serial_stream_iterator< DEC >::state_.

Referenced by bm::serial_stream_iterator< DEC >::serial_stream_iterator().

template<class DEC >

void bm::serial_stream_iterator< DEC >::skip_mono_blocks | ( |  | ) | `[inline]`

skip all zero or all-one blocks

Definition at line 1893 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::block_idx_, BM_ASSERT, bm::serial_stream_iterator< DEC >::e_blocks, bm::serial_stream_iterator< DEC >::e_one_blocks, bm::serial_stream_iterator< DEC >::e_zero_blocks, bm::serial_stream_iterator< DEC >::mono_block_cnt_, and bm::serial_stream_iterator< DEC >::state_.

template<class DEC>

iterator_state bm::serial_stream_iterator< DEC >::state | ( |  | ) | const`[inline]`

Returns iterator internal state.

Definition at line 421 of file bmserial.h.

References bm::serial_stream_iterator< DEC >::state_.

## Field Documentation

template<class DEC>

get_bit_func_type bm::serial_stream_iterator< DEC >::bit_func_table_[bm::set_END]`[protected]`

Definition at line 482 of file bmserial.h.

Referenced by bm::serial_stream_iterator< DEC >::get_bit_block(), and bm::serial_stream_iterator< DEC >::serial_stream_iterator().

template<class DEC>

unsigned bm::serial_stream_iterator< DEC >::block_idx_`[protected]`

current block index

Definition at line 493 of file bmserial.h.

Referenced by bm::serial_stream_iterator< DEC >::block_idx(), bm::serial_stream_iterator< DEC >::get_bit(), bm::serial_stream_iterator< DEC >::get_bit_block(), bm::serial_stream_iterator< DEC >::get_gap_block(), bm::serial_stream_iterator< DEC >::next(), and bm::serial_stream_iterator< DEC >::skip_mono_blocks().

template<class DEC>

unsigned bm::serial_stream_iterator< DEC >::block_type_`[protected]`

current block type

Definition at line 492 of file bmserial.h.

Referenced by bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::serial_stream_iterator< DEC >::get_bit(), bm::serial_stream_iterator< DEC >::get_bit_block_AND(), bm::serial_stream_iterator< DEC >::get_bit_block_ASSIGN(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_A(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_AND(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_OR(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_AB(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_BA(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_XOR(), bm::serial_stream_iterator< DEC >::get_bit_block_OR(), bm::serial_stream_iterator< DEC >::get_bit_block_SUB(), bm::serial_stream_iterator< DEC >::get_bit_block_XOR(), bm::serial_stream_iterator< DEC >::get_block_type(), bm::serial_stream_iterator< DEC >::get_gap_block(), and bm::serial_stream_iterator< DEC >::next().

template<class DEC>

unsigned bm::serial_stream_iterator< DEC >::bv_size_`[protected]`

Definition at line 486 of file bmserial.h.

Referenced by bm::serial_stream_iterator< DEC >::bv_size(), and bm::serial_stream_iterator< DEC >::serial_stream_iterator().

template<class DEC>

decoder_type bm::serial_stream_iterator< DEC >::decoder_`[protected]`

Definition at line 484 of file bmserial.h.

Referenced by bm::serial_stream_iterator< DEC >::dec_size(), bm::serial_stream_iterator< DEC >::decoder(), bm::serial_stream_iterator< DEC >::get_arr_bit(), bm::serial_stream_iterator< DEC >::get_bit(), bm::serial_stream_iterator< DEC >::get_bit_block_AND(), bm::serial_stream_iterator< DEC >::get_bit_block_ASSIGN(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_A(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_AND(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_OR(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_AB(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_BA(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_XOR(), bm::serial_stream_iterator< DEC >::get_bit_block_OR(), bm::serial_stream_iterator< DEC >::get_bit_block_SUB(), bm::serial_stream_iterator< DEC >::get_bit_block_XOR(), bm::serial_stream_iterator< DEC >::get_gap_block(), bm::serial_stream_iterator< DEC >::next(), and bm::serial_stream_iterator< DEC >::serial_stream_iterator().

template<class DEC>

bool bm::serial_stream_iterator< DEC >::end_of_stream_`[protected]`

Definition at line 485 of file bmserial.h.

Referenced by bm::serial_stream_iterator< DEC >::is_eof(), and bm::serial_stream_iterator< DEC >::next().

template<class DEC>

gap_word_t bm::serial_stream_iterator< DEC >::gap_head_`[protected]`

Definition at line 496 of file bmserial.h.

Referenced by bm::serial_stream_iterator< DEC >::get_gap_block(), and bm::serial_stream_iterator< DEC >::next().

template<class DEC>

gap_word_t bm::serial_stream_iterator< DEC >::glevels_[bm::gap_levels]`[protected]`

GAP levels.

Definition at line 490 of file bmserial.h.

Referenced by bm::serial_stream_iterator< DEC >::serial_stream_iterator().

template<class DEC>

unsigned bm::serial_stream_iterator< DEC >::id_cnt_`[protected]`

Id counter for id list.

Definition at line 488 of file bmserial.h.

Referenced by bm::serial_stream_iterator< DEC >::get_id_count(), bm::serial_stream_iterator< DEC >::next(), and bm::serial_stream_iterator< DEC >::serial_stream_iterator().

template<class DEC>

bm::id_t bm::serial_stream_iterator< DEC >::last_id_`[protected]`

Last id from the id list.

Definition at line 489 of file bmserial.h.

Referenced by bm::serial_stream_iterator< DEC >::get_id(), and bm::serial_stream_iterator< DEC >::next().

template<class DEC>

unsigned bm::serial_stream_iterator< DEC >::mono_block_cnt_`[protected]`

number of 0 or 1 blocks

Definition at line 494 of file bmserial.h.

Referenced by bm::serial_stream_iterator< DEC >::next(), and bm::serial_stream_iterator< DEC >::skip_mono_blocks().

template<class DEC>

iterator_state bm::serial_stream_iterator< DEC >::state_`[protected]`

Definition at line 487 of file bmserial.h.

Referenced by bm::serial_stream_iterator< DEC >::get_bit(), bm::serial_stream_iterator< DEC >::get_bit_block(), bm::serial_stream_iterator< DEC >::get_bit_block_AND(), bm::serial_stream_iterator< DEC >::get_bit_block_ASSIGN(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_A(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_AND(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_OR(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_AB(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_BA(), bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_XOR(), bm::serial_stream_iterator< DEC >::get_bit_block_OR(), bm::serial_stream_iterator< DEC >::get_bit_block_SUB(), bm::serial_stream_iterator< DEC >::get_bit_block_XOR(), bm::serial_stream_iterator< DEC >::get_gap_block(), bm::serial_stream_iterator< DEC >::get_state(), bm::serial_stream_iterator< DEC >::next(), bm::serial_stream_iterator< DEC >::serial_stream_iterator(), bm::serial_stream_iterator< DEC >::skip_mono_blocks(), and bm::serial_stream_iterator< DEC >::state().

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

- bmserial.h