dlvhex  2.5.0
bm::serial_stream_iterator< DEC > Class Template Reference

Serialization stream iterator. More...

#include <vs10/bm/bmserial.h>

Inheritance diagram for bm::serial_stream_iterator< DEC >:
Collaboration diagram for bm::serial_stream_iterator< DEC >:

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, 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...
enum  iterator_state {
  e_unknown = 0, e_list_ids, e_blocks, e_zero_blocks,
  e_one_blocks, e_bit_block, e_gap_block, 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
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_typedecoder ()
 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 ()
 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_typedecoder ()
 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 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.

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

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

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.

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

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)

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 >::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 >::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>
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>
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 
)

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::set_bit(), bm::set_block_arrbit, and bm::set_block_bit_1bit.

template<class DEC>
unsigned bm::serial_stream_iterator< DEC >::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.

template<class DEC>
unsigned bm::serial_stream_iterator< DEC >::get_bit ( )
template<class DEC >
unsigned bm::serial_stream_iterator< DEC >::get_bit ( )

Definition at line 2749 of file bmserial.h.

References bm::set_block_bit_1bit.

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 
)

read bit block, using logical operation

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 
)

read bit block, using logical operation

Definition at line 2778 of file bmserial.h.

template<class DEC>
unsigned bm::serial_stream_iterator< DEC >::get_bit_block_AND ( bm::word_t dst_block,
bm::word_t tmp_block 
)
template<class DEC>
unsigned bm::serial_stream_iterator< DEC >::get_bit_block_ASSIGN ( bm::word_t dst_block,
bm::word_t tmp_block 
)
template<class DEC>
unsigned bm::serial_stream_iterator< DEC >::get_bit_block_COUNT ( bm::word_t dst_block,
bm::word_t tmp_block 
)
template<class DEC>
unsigned bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_A ( bm::word_t dst_block,
bm::word_t tmp_block 
)
template<class DEC>
unsigned bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_AND ( bm::word_t dst_block,
bm::word_t tmp_block 
)
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]
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]
template<class DEC>
unsigned bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_OR ( bm::word_t dst_block,
bm::word_t tmp_block 
)
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 
)
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 
)
template<class DEC>
unsigned bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_XOR ( bm::word_t dst_block,
bm::word_t tmp_block 
)
template<class DEC>
unsigned bm::serial_stream_iterator< DEC >::get_bit_block_OR ( bm::word_t dst_block,
bm::word_t tmp_block 
)
template<class DEC>
unsigned bm::serial_stream_iterator< DEC >::get_bit_block_SUB ( bm::word_t dst_block,
bm::word_t tmp_block 
)
template<class DEC>
unsigned bm::serial_stream_iterator< DEC >::get_bit_block_XOR ( bm::word_t dst_block,
bm::word_t tmp_block 
)
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>
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)

Read gap block data (with head)

template<class DEC >
void bm::serial_stream_iterator< DEC >::get_gap_block ( bm::gap_word_t dst_block)

Read gap block data (with head)

Definition at line 2760 of file bmserial.h.

References bm::set_block_bit_1bit.

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>
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>
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>
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_.

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_.

template<class DEC>
void bm::serial_stream_iterator< DEC >::next ( )

get next block

template<class DEC>
void bm::serial_stream_iterator< DEC >::skip_mono_blocks ( )

skip all zero or all-one blocks

template<class DEC >
void bm::serial_stream_iterator< DEC >::skip_mono_blocks ( )

skip all zero or all-one blocks

Definition at line 1893 of file bmserial.h.

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_.

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_ [protected]
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().

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_block_type().

template<class DEC>
unsigned bm::serial_stream_iterator< DEC >::bv_size_ [protected]
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().

template<class DEC>
gap_word_t bm::serial_stream_iterator< DEC >::gap_head_ [protected]

Definition at line 496 of file bmserial.h.

template<class DEC>
gap_word_t bm::serial_stream_iterator< DEC >::glevels_ [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]
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().

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.


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