bm::serial_stream_iterator< DEC, BLOCK_IDX > Class Template Reference
BitMagic Library » bvector<> container » bvector<> serialization

Serialization stream iterator. More...

`#include <bmserial.h>`

Inheritance diagram for bm::serial_stream_iterator< DEC, BLOCK_IDX >:
[legend]
Collaboration diagram for bm::serial_stream_iterator< DEC, BLOCK_IDX >:
[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, BLOCK_IDX >::decoder_type | decoder_type
typedef BLOCK_IDX | block_idx_type
typedef deseriaizer_base< DEC, block_idx_type > | parent_type
typedef unsigned(serial_stream_iterator< DEC, BLOCK_IDX >::* | 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)
| ~serial_stream_iterator ()
block_idx_type | bv_size () const
| serialized bitvector size
bool | is_eof () const
| Returns true if end of bit-stream reached.
void | next ()
| get next block
block_idx_type | skip_mono_blocks () BMNOEXCEPT
| 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 BMNOEXCEPT
| Returns iterator internal state.
iterator_state | get_state () const BMNOEXCEPT
unsigned | get_id_count () const BMNOEXCEPT
| Number of ids in the inverted list (valid for e_list_ids).
bm::id_t | get_id () const BMNOEXCEPT
| Get last id from the id list.
block_idx_type | block_idx () const BMNOEXCEPT
| 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) BMNOEXCEPT
| 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 BMNOEXCEPT
| Get current block type.
unsigned | get_bit () BMNOEXCEPT
void | get_inv_arr (bm::word_t *block) BMNOEXCEPT
bool | try_skip (block_idx_type nb, block_idx_type expect_nb) BMNOEXCEPT
| Try to skip if skip bookmark is available within reach.

## Protected Attributes

get_bit_func_type | bit_func_table_ [bm::set_END]
unsigned char | header_flag_
decoder_type | decoder_
bool | end_of_stream_
block_idx_type | 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
block_idx_type | block_idx_
| current block index
block_idx_type | mono_block_cnt_
| number of 0 or 1 blocks
gap_word_t | gap_head_
gap_word_t * | block_idx_arr_
Protected Attributes inherited from bm::deseriaizer_base< DEC, BLOCK_IDX >
bm::gap_word_t * | id_array_
| ptr to idx array for temp decode use
unsigned * | sb_id_array_
| ptr to super-block idx array (temp)
block_idx_type | bookmark_idx_
| last bookmark block index
unsigned | skip_offset_
| bookmark to skip 256 encoded blocks
const unsigned char * | skip_pos_
| decoder skip position

## Additional Inherited Members

Protected Types inherited from bm::deseriaizer_base< DEC, BLOCK_IDX >
typedef DEC | decoder_type
typedef BLOCK_IDX | block_idx_type
typedef bm::bit_in< DEC > | bit_in_type
Protected Member Functions inherited from bm::deseriaizer_base< DEC, BLOCK_IDX >
| deseriaizer_base ()
void | read_gap_block (decoder_type &decoder, unsigned block_type, bm::gap_word_t *dst_block, bm::gap_word_t &gap_head)
| Read GAP block from the stream.
unsigned | read_id_list (decoder_type &decoder, unsigned block_type, bm::gap_word_t *dst_arr)
| Read list of bit ids.
void | read_bic_arr (decoder_type &decoder, bm::word_t *blk, unsigned block_type) BMNOEXCEPT
| Read binary interpolated list into a bit-set.
unsigned | read_bic_sb_arr (decoder_type &decoder, unsigned block_type, unsigned *dst_arr, unsigned *sb_idx)
| Read list of bit ids for super-blocks.
void | read_bic_gap (decoder_type &decoder, bm::word_t *blk) BMNOEXCEPT
| Read binary interpolated gap blocks into a bitset.
void | read_bic_arr_inv (decoder_type &decoder, bm::word_t *blk) BMNOEXCEPT
| Read inverted binary interpolated list into a bit-set.
void | read_digest0_block (decoder_type &decoder, bm::word_t *blk) BMNOEXCEPT
| Read digest0-type bit-block.
block_idx_type | try_skip (decoder_type &decoder, block_idx_type nb, block_idx_type expect_nb) BMNOEXCEPT
| Try to skip if skip bookmark is available within reach.
Static Protected Member Functions inherited from bm::deseriaizer_base< DEC, BLOCK_IDX >
static void | read_0runs_block (decoder_type &decoder, bm::word_t *blk) BMNOEXCEPT
| read bit-block encoded as runs
static const char * | err_msg () BMNOEXCEPT

## Detailed Description

template<class DEC, typename BLOCK_IDX>
class bm::serial_stream_iterator< DEC, BLOCK_IDX >

Serialization stream iterator.

Iterates blocks and control tokens of serialized bit-stream

Definition at line 767 of file bmserial.h.

## Member Typedef Documentation

## block_idx_type

template<class DEC, typename BLOCK_IDX>

typedef BLOCK_IDX bm::serial_stream_iterator< DEC, BLOCK_IDX >::block_idx_type

Definition at line 771 of file bmserial.h.

## decoder_type

template<class DEC, typename BLOCK_IDX>

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

Definition at line 770 of file bmserial.h.

## get_bit_func_type

template<class DEC, typename BLOCK_IDX>

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

member function pointer for bitset-bitset get operations

Definition at line 837 of file bmserial.h.

## parent_type

template<class DEC, typename BLOCK_IDX>

typedef deseriaizer_base<DEC, block_idx_type> bm::serial_stream_iterator< DEC, BLOCK_IDX >::parent_type

Definition at line 772 of file bmserial.h.

## Member Enumeration Documentation

## iterator_state

template<class DEC, typename BLOCK_IDX>

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 808 of file bmserial.h.

## Constructor & Destructor Documentation

## serial_stream_iterator()

template<typename DEC, typename BLOCK_IDX>

bm::serial_stream_iterator< DEC, BLOCK_IDX >::serial_stream_iterator | ( | const unsigned char * | buf | ) |

Definition at line 4747 of file bmserial.h.

References bit_func_table_, block_idx_, block_idx_arr_, BM_ASSERT, bm::BM_HM_64_BIT, bm::BM_HM_ID_LIST, bm::BM_HM_NO_BO, bm::BM_HM_NO_GAPL, bm::BM_HM_RESIZE, bv_size_, decoder_, e_blocks, e_list_ids, e_unknown, end_of_stream_, bm::gap_levels, bm::gap_max_bits, get_bit_block_AND(), get_bit_block_ASSIGN(), get_bit_block_COUNT(), get_bit_block_COUNT_A(), get_bit_block_COUNT_AND(), get_bit_block_COUNT_OR(), get_bit_block_COUNT_SUB_AB(), get_bit_block_COUNT_SUB_BA(), get_bit_block_COUNT_XOR(), get_bit_block_OR(), get_bit_block_SUB(), get_bit_block_XOR(), glevels_, header_flag_, bm::deseriaizer_base< DEC, BLOCK_IDX >::id_array_, id_cnt_, mono_block_cnt_, 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 state_.

## ~serial_stream_iterator()

template<typename DEC, typename BLOCK_IDX>

bm::serial_stream_iterator< DEC, BLOCK_IDX >::~serial_stream_iterator | ( |  | ) |

Definition at line 4849 of file bmserial.h.

References block_idx_arr_.

## Member Function Documentation

## block_idx()

template<class DEC, typename BLOCK_IDX>

block_idx_type bm::serial_stream_iterator< DEC, BLOCK_IDX >::block_idx | ( |  | ) | const

inline

Get current block index.

Definition at line 831 of file bmserial.h.

## bv_size()

template<class DEC, typename BLOCK_IDX>

block_idx_type bm::serial_stream_iterator< DEC, BLOCK_IDX >::bv_size | ( |  | ) | const

inline

serialized bitvector size

Definition at line 779 of file bmserial.h.

## dec_size()

template<class DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::dec_size | ( |  | ) | const

inline

Return current decoder size.

Definition at line 800 of file bmserial.h.

## decoder()

template<class DEC, typename BLOCK_IDX>

decoder_type & bm::serial_stream_iterator< DEC, BLOCK_IDX >::decoder | ( |  | ) |

inline

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

Definition at line 803 of file bmserial.h.

## get_arr_bit()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::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.

Definition at line 6287 of file bmserial.h.

References bm::bit_block_set(), block_type_, BM_ASSERT, BMNOEXCEPT, decoder_, bm::set_bit(), bm::set_block_arrbit, and bm::set_block_bit_1bit.

Referenced by get_bit_block_AND(), get_bit_block_ASSIGN(), get_bit_block_COUNT(), get_bit_block_COUNT_A(), get_bit_block_COUNT_AND(), get_bit_block_COUNT_OR(), get_bit_block_COUNT_SUB_AB(), get_bit_block_COUNT_SUB_BA(), get_bit_block_COUNT_XOR(), get_bit_block_OR(), get_bit_block_SUB(), and get_bit_block_XOR().

## get_bit()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit | ( |  | ) |

Definition at line 6325 of file bmserial.h.

References block_idx_, block_type_, BM_ASSERT, BMNOEXCEPT, decoder_, e_blocks, bm::set_block_bit_1bit, and state_.

## get_bit_block()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block,
|  | set_operation | op )

read bit block, using logical operation

Definition at line 6354 of file bmserial.h.

References bit_func_table_, block_idx_, BM_ASSERT, e_bit_block, e_blocks, and state_.

## get_bit_block_AND()

template<class DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block_AND | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block )

Definition at line 5305 of file bmserial.h.

References bm::bit_block_and(), bm::bit_block_set(), block_type_, BM_ASSERT, BMRESTRICT, decoder_, e_bit_block, bm::deseriaizer_base< DEC, BLOCK_IDX >::err_msg(), get_arr_bit(), get_inv_arr(), IS_VALID_ADDR, bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr_inv(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_gap(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_digest0_block(), bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit, bm::set_block_arrbit_inv, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_digest0, bm::set_block_bit_interval, bm::set_block_bitgap_bienc, bm::set_block_size, and state_.

Referenced by serial_stream_iterator().

## get_bit_block_ASSIGN()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block_ASSIGN | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block )

Definition at line 5129 of file bmserial.h.

References bm::bit_block_copy(), bm::bit_block_set(), block_type_, BM_ASSERT, decoder_, e_bit_block, bm::deseriaizer_base< DEC, BLOCK_IDX >::err_msg(), get_arr_bit(), get_inv_arr(), IS_VALID_ADDR, bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr_inv(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_gap(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_digest0_block(), bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit, bm::set_block_arrbit_inv, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_digest0, bm::set_block_bit_interval, bm::set_block_bitgap_bienc, bm::set_block_gapbit, bm::set_block_size, and state_.

Referenced by serial_stream_iterator().

## get_bit_block_COUNT()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block_COUNT | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block )

Definition at line 5629 of file bmserial.h.

References bm::bit_block_count(), bm::bit_block_set(), block_type_, BM_ASSERT, decoder_, e_bit_block, bm::deseriaizer_base< DEC, BLOCK_IDX >::err_msg(), get_arr_bit(), get_inv_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr_inv(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_gap(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_digest0_block(), bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit, bm::set_block_arrbit_inv, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_digest0, bm::set_block_bit_interval, bm::set_block_bitgap_bienc, bm::set_block_size, state_, and bm::word_bitcount().

Referenced by serial_stream_iterator().

## get_bit_block_COUNT_A()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block_COUNT_A | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block )

Definition at line 5714 of file bmserial.h.

References bm::bit_block_count(), block_type_, BM_ASSERT, decoder_, e_bit_block, bm::deseriaizer_base< DEC, BLOCK_IDX >::err_msg(), get_arr_bit(), get_inv_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr_inv(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_gap(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_digest0_block(), bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit, bm::set_block_arrbit_inv, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_digest0, bm::set_block_bit_interval, bm::set_block_bitgap_bienc, bm::set_block_size, and state_.

Referenced by serial_stream_iterator().

## get_bit_block_COUNT_AND()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block_COUNT_AND | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block )

Definition at line 5798 of file bmserial.h.

References bm::bit_block_set(), bm::bit_operation_and_count(), block_type_, BM_ASSERT, decoder_, e_bit_block, bm::deseriaizer_base< DEC, BLOCK_IDX >::err_msg(), get_arr_bit(), get_inv_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr_inv(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_gap(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_digest0_block(), bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit, bm::set_block_arrbit_inv, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_digest0, bm::set_block_bit_interval, bm::set_block_bitgap_bienc, bm::set_block_size, state_, and bm::word_bitcount().

Referenced by serial_stream_iterator().

## get_bit_block_COUNT_B()

template<class DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block_COUNT_B | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block )

inline

Definition at line 865 of file bmserial.h.

## get_bit_block_COUNT_OR()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block_COUNT_OR | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block )

Definition at line 5884 of file bmserial.h.

References bm::bit_block_set(), bm::bit_operation_or_count(), bm::bit_recomb(), block_type_, BM_ASSERT, decoder_, e_bit_block, bm::deseriaizer_base< DEC, BLOCK_IDX >::err_msg(), get_arr_bit(), get_inv_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr_inv(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_gap(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_digest0_block(), bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit, bm::set_block_arrbit_inv, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_digest0, bm::set_block_bit_interval, bm::set_block_bitgap_bienc, bm::set_block_size, state_, bm::bitblock_sum_adapter::sum(), and bm::word_bitcount().

Referenced by serial_stream_iterator().

## get_bit_block_COUNT_SUB_AB()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block_COUNT_SUB_AB | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block )

Definition at line 6089 of file bmserial.h.

References bm::bit_block_set(), bm::bit_operation_sub_count(), bm::bit_recomb(), block_type_, BM_ASSERT, decoder_, e_bit_block, bm::deseriaizer_base< DEC, BLOCK_IDX >::err_msg(), get_arr_bit(), get_inv_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr_inv(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_gap(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_digest0_block(), bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit, bm::set_block_arrbit_inv, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_digest0, bm::set_block_bit_interval, bm::set_block_bitgap_bienc, bm::set_block_size, state_, bm::bitblock_sum_adapter::sum(), and bm::word_bitcount().

Referenced by serial_stream_iterator().

## get_bit_block_COUNT_SUB_BA()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block_COUNT_SUB_BA | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block )

Definition at line 6192 of file bmserial.h.

References bm::bit_block_set(), bm::bit_operation_sub_count(), bm::bit_recomb(), block_type_, BM_ASSERT, decoder_, e_bit_block, bm::deseriaizer_base< DEC, BLOCK_IDX >::err_msg(), get_arr_bit(), get_inv_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr_inv(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_gap(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_digest0_block(), bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit, bm::set_block_arrbit_inv, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_digest0, bm::set_block_bit_interval, bm::set_block_bitgap_bienc, bm::set_block_size, state_, bm::bitblock_sum_adapter::sum(), and bm::word_bitcount().

Referenced by serial_stream_iterator().

## get_bit_block_COUNT_XOR()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block_COUNT_XOR | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block )

Definition at line 5986 of file bmserial.h.

References bm::bit_block_set(), bm::bit_operation_xor_count(), bm::bit_recomb(), block_type_, BM_ASSERT, decoder_, e_bit_block, bm::deseriaizer_base< DEC, BLOCK_IDX >::err_msg(), get_arr_bit(), get_inv_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr_inv(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_gap(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_digest0_block(), bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit, bm::set_block_arrbit_inv, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_digest0, bm::set_block_bit_interval, bm::set_block_bitgap_bienc, bm::set_block_size, state_, bm::bitblock_sum_adapter::sum(), and bm::word_bitcount().

Referenced by serial_stream_iterator().

## get_bit_block_OR()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block_OR | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block )

Definition at line 5229 of file bmserial.h.

References bm::bit_block_or(), block_type_, BM_ASSERT, decoder_, e_bit_block, bm::deseriaizer_base< DEC, BLOCK_IDX >::err_msg(), get_arr_bit(), get_inv_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr_inv(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_gap(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_digest0_block(), bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit, bm::set_block_arrbit_inv, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_digest0, bm::set_block_bit_interval, bm::set_block_bitgap_bienc, bm::set_block_size, and state_.

Referenced by serial_stream_iterator().

## get_bit_block_SUB()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block_SUB | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block )

Definition at line 5525 of file bmserial.h.

References bm::bit_block_set(), bm::bit_block_sub(), block_type_, BM_ASSERT, decoder_, e_bit_block, bm::deseriaizer_base< DEC, BLOCK_IDX >::err_msg(), get_arr_bit(), get_inv_arr(), IS_VALID_ADDR, bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr_inv(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_gap(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_digest0_block(), bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit, bm::set_block_arrbit_inv, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_digest0, bm::set_block_bit_interval, bm::set_block_bitgap_bienc, bm::set_block_size, and state_.

Referenced by serial_stream_iterator().

## get_bit_block_XOR()

template<typename DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_bit_block_XOR | ( | bm::word_t * | dst_block,
|  | bm::word_t * | tmp_block )

Definition at line 5419 of file bmserial.h.

References bm::bit_block_set(), bm::bit_block_xor(), block_type_, BM_ASSERT, decoder_, e_bit_block, bm::deseriaizer_base< DEC, BLOCK_IDX >::err_msg(), get_arr_bit(), get_inv_arr(), IS_VALID_ADDR, bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_arr_inv(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_bic_gap(), bm::deseriaizer_base< DEC, BLOCK_IDX >::read_digest0_block(), bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit, bm::set_block_arrbit_inv, bm::set_block_bit, bm::set_block_bit_0runs, bm::set_block_bit_1bit, bm::set_block_bit_digest0, bm::set_block_bit_interval, bm::set_block_bitgap_bienc, bm::set_block_size, and state_.

Referenced by serial_stream_iterator().

## get_block_type()

template<class DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_block_type | ( |  | ) | const

inline

Get current block type.

Definition at line 877 of file bmserial.h.

## get_gap_block()

template<typename DEC, typename BLOCK_IDX>

void bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_gap_block | ( | bm::gap_word_t * | dst_block | ) |

Read gap block data (with head).

Definition at line 6336 of file bmserial.h.

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

## get_id()

template<class DEC, typename BLOCK_IDX>

bm::id_t bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_id | ( |  | ) | const

inline

Get last id from the id list.

Definition at line 828 of file bmserial.h.

## get_id_count()

template<class DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_id_count | ( |  | ) | const

inline

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

Definition at line 825 of file bmserial.h.

## get_inv_arr()

template<typename DEC, typename BLOCK_IDX>

void bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_inv_arr | ( | bm::word_t * | block | ) |

Definition at line 5107 of file bmserial.h.

References bm::bit_block_set(), BMNOEXCEPT, bm::clear_bit(), and decoder_.

Referenced by get_bit_block_AND(), get_bit_block_ASSIGN(), get_bit_block_COUNT(), get_bit_block_COUNT_A(), get_bit_block_COUNT_AND(), get_bit_block_COUNT_OR(), get_bit_block_COUNT_SUB_AB(), get_bit_block_COUNT_SUB_BA(), get_bit_block_COUNT_XOR(), get_bit_block_OR(), get_bit_block_SUB(), and get_bit_block_XOR().

## get_state()

template<class DEC, typename BLOCK_IDX>

iterator_state bm::serial_stream_iterator< DEC, BLOCK_IDX >::get_state | ( |  | ) | const

inline

Definition at line 823 of file bmserial.h.

## is_eof()

template<class DEC, typename BLOCK_IDX>

bool bm::serial_stream_iterator< DEC, BLOCK_IDX >::is_eof | ( |  | ) | const

inline

Returns true if end of bit-stream reached.

Definition at line 782 of file bmserial.h.

Referenced by next().

## next()

template<typename DEC, typename BLOCK_IDX>

void bm::serial_stream_iterator< DEC, BLOCK_IDX >::next | ( |  | ) |

get next block

Definition at line 4857 of file bmserial.h.

References block_idx_, block_type_, BM_ASSERT, BM_FALLTHROUGH, bm::deseriaizer_base< DEC, BLOCK_IDX >::bookmark_idx_, decoder_, e_bit_block, e_blocks, e_gap_block, e_list_ids, e_one_blocks, e_unknown, e_zero_blocks, end_of_stream_, bm::deseriaizer_base< DEC, BLOCK_IDX >::err_msg(), gap_head_, id_cnt_, is_eof(), last_id_, 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_64one, bm::set_block_8one, bm::set_block_8zero, bm::set_block_aone, bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit, bm::set_block_arrbit_inv, bm::set_block_arrgap, bm::set_block_arrgap_bienc, bm::set_block_arrgap_bienc_inv, bm::set_block_arrgap_bienc_inv_v2, bm::set_block_arrgap_bienc_v2, 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_digest0, bm::set_block_bit_interval, bm::set_block_bitgap_bienc, bm::set_block_end, bm::set_block_gap, bm::set_block_gap_bienc, bm::set_block_gap_bienc_v2, bm::set_block_gap_egamma, bm::set_block_gapbit, bm::set_block_ref_eq, bm::set_block_xor_ref16, bm::set_block_xor_ref16_um, bm::set_block_xor_ref32, bm::set_block_xor_ref32_um, bm::set_block_xor_ref8, bm::set_block_xor_ref8_um, bm::set_nb_bookmark16, bm::set_nb_bookmark24, bm::set_nb_bookmark32, bm::set_nb_sync_mark16, bm::set_nb_sync_mark24, bm::set_nb_sync_mark32, bm::set_nb_sync_mark48, bm::set_nb_sync_mark64, bm::set_nb_sync_mark8, bm::set_sblock_bienc, bm::set_total_blocks, bm::deseriaizer_base< DEC, BLOCK_IDX >::skip_offset_, bm::deseriaizer_base< DEC, BLOCK_IDX >::skip_pos_, and state_.

Referenced by serial_stream_iterator().

## skip_mono_blocks()

template<typename DEC, typename BLOCK_IDX>

serial_stream_iterator< DEC, BLOCK_IDX >::block_idx_type bm::serial_stream_iterator< DEC, BLOCK_IDX >::skip_mono_blocks | ( |  | ) |

skip all zero or all-one blocks

Definition at line 5091 of file bmserial.h.

References block_idx_, BM_ASSERT, BMNOEXCEPT, e_blocks, e_one_blocks, e_zero_blocks, mono_block_cnt_, and state_.

## state()

template<class DEC, typename BLOCK_IDX>

iterator_state bm::serial_stream_iterator< DEC, BLOCK_IDX >::state | ( |  | ) | const

inline

Returns iterator internal state.

Definition at line 821 of file bmserial.h.

## try_skip()

template<class DEC, typename BLOCK_IDX>

bool bm::serial_stream_iterator< DEC, BLOCK_IDX >::try_skip | ( | block_idx_type | nb,
|  | block_idx_type | expect_nb )

inline

Try to skip if skip bookmark is available within reach.

Returns
  true if skip went well

Definition at line 886 of file bmserial.h.

## Field Documentation

## bit_func_table_

template<class DEC, typename BLOCK_IDX>

get_bit_func_type bm::serial_stream_iterator< DEC, BLOCK_IDX >::bit_func_table_[bm::set_END]

protected

Definition at line 897 of file bmserial.h.

Referenced by get_bit_block(), and serial_stream_iterator().

## block_idx_

template<class DEC, typename BLOCK_IDX>

block_idx_type bm::serial_stream_iterator< DEC, BLOCK_IDX >::block_idx_

protected

current block index

Definition at line 910 of file bmserial.h.

Referenced by get_bit(), get_bit_block(), get_gap_block(), next(), serial_stream_iterator(), and skip_mono_blocks().

## block_idx_arr_

template<class DEC, typename BLOCK_IDX>

gap_word_t* bm::serial_stream_iterator< DEC, BLOCK_IDX >::block_idx_arr_

protected

Definition at line 914 of file bmserial.h.

Referenced by serial_stream_iterator(), and ~serial_stream_iterator().

## block_type_

template<class DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::block_type_

protected

current block type

Definition at line 909 of file bmserial.h.

Referenced by get_arr_bit(), get_bit(), get_bit_block_AND(), get_bit_block_ASSIGN(), get_bit_block_COUNT(), get_bit_block_COUNT_A(), get_bit_block_COUNT_AND(), get_bit_block_COUNT_OR(), get_bit_block_COUNT_SUB_AB(), get_bit_block_COUNT_SUB_BA(), get_bit_block_COUNT_XOR(), get_bit_block_OR(), get_bit_block_SUB(), get_bit_block_XOR(), get_gap_block(), and next().

## bv_size_

template<class DEC, typename BLOCK_IDX>

block_idx_type bm::serial_stream_iterator< DEC, BLOCK_IDX >::bv_size_

protected

Definition at line 903 of file bmserial.h.

Referenced by serial_stream_iterator().

## decoder_

template<class DEC, typename BLOCK_IDX>

decoder_type bm::serial_stream_iterator< DEC, BLOCK_IDX >::decoder_

protected

Definition at line 901 of file bmserial.h.

Referenced by get_arr_bit(), get_bit(), get_bit_block_AND(), get_bit_block_ASSIGN(), get_bit_block_COUNT(), get_bit_block_COUNT_A(), get_bit_block_COUNT_AND(), get_bit_block_COUNT_OR(), get_bit_block_COUNT_SUB_AB(), get_bit_block_COUNT_SUB_BA(), get_bit_block_COUNT_XOR(), get_bit_block_OR(), get_bit_block_SUB(), get_bit_block_XOR(), get_gap_block(), get_inv_arr(), next(), and serial_stream_iterator().

## end_of_stream_

template<class DEC, typename BLOCK_IDX>

bool bm::serial_stream_iterator< DEC, BLOCK_IDX >::end_of_stream_

protected

Definition at line 902 of file bmserial.h.

Referenced by next(), and serial_stream_iterator().

## gap_head_

template<class DEC, typename BLOCK_IDX>

gap_word_t bm::serial_stream_iterator< DEC, BLOCK_IDX >::gap_head_

protected

Definition at line 913 of file bmserial.h.

Referenced by get_gap_block(), and next().

## glevels_

template<class DEC, typename BLOCK_IDX>

gap_word_t bm::serial_stream_iterator< DEC, BLOCK_IDX >::glevels_[bm::gap_levels]

protected

GAP levels.

Definition at line 907 of file bmserial.h.

Referenced by serial_stream_iterator().

## header_flag_

template<class DEC, typename BLOCK_IDX>

unsigned char bm::serial_stream_iterator< DEC, BLOCK_IDX >::header_flag_

protected

Definition at line 899 of file bmserial.h.

Referenced by serial_stream_iterator().

## id_cnt_

template<class DEC, typename BLOCK_IDX>

unsigned bm::serial_stream_iterator< DEC, BLOCK_IDX >::id_cnt_

protected

Id counter for id list.

Definition at line 905 of file bmserial.h.

Referenced by next(), and serial_stream_iterator().

## last_id_

template<class DEC, typename BLOCK_IDX>

bm::id_t bm::serial_stream_iterator< DEC, BLOCK_IDX >::last_id_

protected

Last id from the id list.

Definition at line 906 of file bmserial.h.

Referenced by next().

## mono_block_cnt_

template<class DEC, typename BLOCK_IDX>

block_idx_type bm::serial_stream_iterator< DEC, BLOCK_IDX >::mono_block_cnt_

protected

number of 0 or 1 blocks

Definition at line 911 of file bmserial.h.

Referenced by next(), serial_stream_iterator(), and skip_mono_blocks().

## state_

template<class DEC, typename BLOCK_IDX>

iterator_state bm::serial_stream_iterator< DEC, BLOCK_IDX >::state_

protected

Definition at line 904 of file bmserial.h.

Referenced by get_bit(), get_bit_block(), get_bit_block_AND(), get_bit_block_ASSIGN(), get_bit_block_COUNT(), get_bit_block_COUNT_A(), get_bit_block_COUNT_AND(), get_bit_block_COUNT_OR(), get_bit_block_COUNT_SUB_AB(), get_bit_block_COUNT_SUB_BA(), get_bit_block_COUNT_XOR(), get_bit_block_OR(), get_bit_block_SUB(), get_bit_block_XOR(), get_gap_block(), next(), serial_stream_iterator(), and skip_mono_blocks().

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

- bmserial.h