|
BitMagic-C++
|
Deserializer for bit-vector. More...
#include <bmserial.h>


Public Types | |
| typedef BV | bvector_type |
| typedef bvector_type::allocator_type | allocator_type |
| typedef BV::size_type | size_type |
| typedef bvector_type::block_idx_type | block_idx_type |
| typedef deseriaizer_base< DEC, block_idx_type > | parent_type |
| typedef parent_type::decoder_type | decoder_type |
| typedef bm::bv_ref_vector< BV > | bv_ref_vector_type |
Public Member Functions | |
| deserializer () | |
| ~deserializer () | |
| size_t | deserialize (bvector_type &bv, const unsigned char *buf, bm::word_t *temp_block=0) |
| void | set_ref_vectors (const bv_ref_vector_type *ref_vect) |
| Attach collection of reference vectors for XOR de-serialization (no transfer of ownership for the pointer). | |
| void | set_range (size_type from, size_type to) BMNOEXCEPT |
| set deserialization range [from, to] This is NOT exact, approximate range, content outside range is not guaranteed to be absent | |
| void | unset_range () BMNOEXCEPT |
| Disable range deserialization. | |
| void | reset () BMNOEXCEPT |
| reset range deserialization and reference vectors | |
Protected Types | |
| typedef BV::blocks_manager_type | blocks_manager_type |
| typedef bm::heap_vector< bm::gap_word_t, allocator_type, true > | block_arridx_type |
| typedef bm::heap_vector< bm::word_t, allocator_type, true > | sblock_arridx_type |
| typedef allocator_type::allocator_pool_type | allocator_pool_type |
| Protected Types inherited from bm::deseriaizer_base< DEC, BV::block_idx_type > | |
| typedef DEC | decoder_type |
| typedef BV::block_idx_type | block_idx_type |
| typedef bm::bit_in< DEC > | bit_in_type |
Protected Member Functions | |
| void | xor_decode (blocks_manager_type &bman) |
| void | xor_decode_chain (bm::word_t *BMRESTRICT blk) BMNOEXCEPT |
| void | xor_reset () BMNOEXCEPT |
| void | deserialize_gap (unsigned char btype, decoder_type &dec, bvector_type &bv, blocks_manager_type &bman, block_idx_type nb, bm::word_t *blk) |
| void | decode_bit_block (unsigned char btype, decoder_type &dec, blocks_manager_type &bman, block_idx_type nb, bm::word_t *blk) |
| void | decode_block_bit (decoder_type &dec, bvector_type &bv, block_idx_type nb, bm::word_t *blk) |
| void | decode_block_bit_interval (decoder_type &dec, bvector_type &bv, block_idx_type nb, bm::word_t *blk) |
| void | decode_arrbit (decoder_type &dec, bvector_type &bv, block_idx_type nb, bm::word_t *blk) |
| void | decode_arr_sblock (unsigned char btype, decoder_type &dec, bvector_type &bv) |
| Protected Member Functions inherited from bm::deseriaizer_base< DEC, BV::block_idx_type > | |
| 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. | |
Protected Attributes | |
| block_arridx_type | bit_idx_arr_ |
| sblock_arridx_type | sb_bit_idx_arr_ |
| block_arridx_type | gap_temp_block_ |
| bm::word_t * | temp_block_ |
| allocator_pool_type | pool_ |
| allocator_type | alloc_ |
| const bv_ref_vector_type * | ref_vect_ |
| ref.vector for XOR compression | |
| bm::word_t * | xor_block_ |
| xor product | |
| bm::word_t * | or_block_ |
| size_type | or_block_idx_ |
| size_type | x_ref_idx_ |
| bm::id64_t | x_ref_d64_ |
| block_idx_type | x_nb_ |
| unsigned | xor_chain_size_ |
| bm::match_pair | xor_chain_ [64] |
| unsigned | is_range_set_ |
| size_type | idx_from_ |
| size_type | idx_to_ |
| Protected Attributes inherited from bm::deseriaizer_base< DEC, BV::block_idx_type > | |
| 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 | |
| Static Protected Member Functions inherited from bm::deseriaizer_base< DEC, BV::block_idx_type > | |
| 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 |
Deserializer for bit-vector.
Definition at line 568 of file bmserial.h.
|
protected |
Definition at line 665 of file bmserial.h.
| typedef bvector_type::allocator_type bm::deserializer< BV, DEC >::allocator_type |
Definition at line 573 of file bmserial.h.
|
protected |
Definition at line 663 of file bmserial.h.
| typedef bvector_type::block_idx_type bm::deserializer< BV, DEC >::block_idx_type |
Definition at line 575 of file bmserial.h.
|
protected |
Definition at line 627 of file bmserial.h.
| typedef bm::bv_ref_vector<BV> bm::deserializer< BV, DEC >::bv_ref_vector_type |
Definition at line 578 of file bmserial.h.
| typedef BV bm::deserializer< BV, DEC >::bvector_type |
Definition at line 572 of file bmserial.h.
| typedef parent_type::decoder_type bm::deserializer< BV, DEC >::decoder_type |
Definition at line 577 of file bmserial.h.
| typedef deseriaizer_base<DEC, block_idx_type> bm::deserializer< BV, DEC >::parent_type |
Definition at line 576 of file bmserial.h.
|
protected |
Definition at line 664 of file bmserial.h.
| typedef BV::size_type bm::deserializer< BV, DEC >::size_type |
Definition at line 574 of file bmserial.h.
| bm::deserializer< BV, DEC >::deserializer | ( | ) |
Definition at line 3749 of file bmserial.h.
References alloc_, bit_idx_arr_, bm::gap_max_bits, gap_temp_block_, bm::deseriaizer_base< DEC, BV::block_idx_type >::id_array_, is_range_set_, or_block_, or_block_idx_, pool_, ref_vect_, sb_bit_idx_arr_, bm::deseriaizer_base< DEC, BV::block_idx_type >::sb_id_array_, temp_block_, and xor_block_.
| bm::deserializer< BV, DEC >::~deserializer | ( | ) |
Definition at line 3770 of file bmserial.h.
References alloc_, BM_ASSERT, or_block_, temp_block_, and xor_block_.
|
protected |
Definition at line 4003 of file bmserial.h.
References bm::gap_max_bits, idx_from_, idx_to_, is_range_set_, bm::deseriaizer_base< DEC, BV::block_idx_type >::read_bic_sb_arr(), bm::deseriaizer_base< DEC, BV::block_idx_type >::sb_id_array_, and bm::set_sub_array_size.
Referenced by deserialize().
|
protected |
Definition at line 4084 of file bmserial.h.
References bm::bit_block_set(), BM_IS_GAP, IS_FULL_BLOCK, and bm::set_bit().
Referenced by deserialize().
|
protected |
Definition at line 3938 of file bmserial.h.
References bm::bit_block_or(), bm::bit_block_set(), bm::bit_invert(), BM_ASSERT, BM_IS_GAP, bm::clear_bit(), bm::deseriaizer_base< DEC, BV::block_idx_type >::err_msg(), IS_FULL_BLOCK, bm::deseriaizer_base< DEC, BV::block_idx_type >::read_bic_arr(), bm::deseriaizer_base< DEC, BV::block_idx_type >::read_bic_gap(), bm::deseriaizer_base< DEC, BV::block_idx_type >::read_digest0_block(), bm::set_block_arr_bienc, bm::set_block_arr_bienc_8bh, bm::set_block_arr_bienc_inv, bm::set_block_arrbit_inv, bm::set_block_bit_digest0, bm::set_block_bitgap_bienc, and temp_block_.
Referenced by deserialize().
|
protected |
Definition at line 4037 of file bmserial.h.
References bm::BM_OR, bm::set_block_size, and temp_block_.
Referenced by deserialize().
|
protected |
Definition at line 4057 of file bmserial.h.
References bm::bit_block_set(), bm::BM_OR, bm::set_block_size, and temp_block_.
Referenced by deserialize().
| size_t bm::deserializer< BV, DEC >::deserialize | ( | bvector_type & | bv, |
| const unsigned char * | buf, | ||
| bm::word_t * | temp_block = 0 ) |
Deserialize bit-vector (equivalent to logical OR)
| bv | - target bit-vector |
| buf | - BLOB memory pointer |
| temp_block | - temporary buffer [block size] (not used) |
Definition at line 4122 of file bmserial.h.
References alloc_, bm::bits_in_block, BM_ASSERT, bm::BM_GAP, bm::BM_HM_64_BIT, bm::BM_HM_HXOR, bm::BM_HM_ID_LIST, bm::BM_HM_NO_BO, bm::BM_HM_NO_GAPL, bm::BM_HM_RESIZE, BM_IS_GAP, bm::BM_OR, bm::deseriaizer_base< DEC, BV::block_idx_type >::bookmark_idx_, decode_arr_sblock(), decode_arrbit(), decode_bit_block(), decode_block_bit(), decode_block_bit_interval(), deserialize_gap(), bm::deseriaizer_base< DEC, BV::block_idx_type >::err_msg(), bm::gap_levels, bm::gap_max_bits, bm::get_block_coord(), bm::id_max, idx_from_, idx_to_, is_range_set_, or_block_, or_block_idx_, pool_, bm::deseriaizer_base< DEC, BV::block_idx_type >::read_0runs_block(), ref_vect_, 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_64zero, 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_shift, bm::set_block_xor_chain, bm::set_block_xor_gap_ref16, bm::set_block_xor_gap_ref32, bm::set_block_xor_gap_ref8, 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_sub_array_size, bm::set_total_blocks, bm::deseriaizer_base< DEC, BV::block_idx_type >::skip_offset_, bm::deseriaizer_base< DEC, BV::block_idx_type >::skip_pos_, temp_block_, bm::deseriaizer_base< DEC, BV::block_idx_type >::try_skip(), x_nb_, x_ref_d64_, x_ref_idx_, xor_block_, xor_chain_, xor_chain_size_, xor_decode(), and xor_reset().
Referenced by bm::deserialize(), and bm::deserialize_range().
|
protected |
Definition at line 3788 of file bmserial.h.
References BM_ASSERT, BM_FALLTHROUGH, BMGAP_PTR, BMPTR_SETBIT0, BMSET_PTRGAP, bm::deseriaizer_base< DEC, BV::block_idx_type >::err_msg(), bm::gap_calc_level(), bm::gap_convert_to_bitset(), bm::gap_invert(), bm::gap_length(), bm::gap_max_bits, bm::gap_set_array(), gap_temp_block_, bm::get_block_coord(), bm::deseriaizer_base< DEC, BV::block_idx_type >::id_array_, bm::deseriaizer_base< DEC, BV::block_idx_type >::read_gap_block(), bm::deseriaizer_base< DEC, BV::block_idx_type >::read_id_list(), 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_gap, bm::set_block_gap_bienc, bm::set_block_gap_bienc_v2, bm::set_block_gap_egamma, bm::set_block_gapbit, bm::set_gap_level(), temp_block_, and x_ref_d64_.
Referenced by deserialize().
|
inline |
reset range deserialization and reference vectors
Definition at line 624 of file bmserial.h.
|
inline |
set deserialization range [from, to] This is NOT exact, approximate range, content outside range is not guaranteed to be absent
Definition at line 610 of file bmserial.h.
Referenced by bm::deserialize_range().
| void bm::deserializer< BV, DEC >::set_ref_vectors | ( | const bv_ref_vector_type * | ref_vect | ) |
Attach collection of reference vectors for XOR de-serialization (no transfer of ownership for the pointer).
Definition at line 3779 of file bmserial.h.
References alloc_, ref_vect_, and xor_block_.
Referenced by bm::deserialize(), bm::deserialize_range(), and bm::deserializer< BV, bm::decoder_little_endian >::reset().
|
inline |
Disable range deserialization.
Definition at line 619 of file bmserial.h.
Referenced by bm::deserializer< BV, bm::decoder_little_endian >::reset().
|
protected |
Definition at line 4622 of file bmserial.h.
References alloc_, bm::bit_block_or(), bm::bit_block_xor(), BM_ASSERT, BM_IS_GAP, BMGAP_PTR, FULL_BLOCK_REAL_ADDR, bm::gap_convert_to_bitset(), bm::gap_operation_xor(), bm::get_block_coord(), idx_from_, idx_to_, IS_FULL_BLOCK, is_range_set_, or_block_, or_block_idx_, ref_vect_, bm::set_block_shift, x_nb_, x_ref_d64_, x_ref_idx_, xor_block_, xor_chain_size_, xor_decode_chain(), and xor_reset().
Referenced by deserialize().
|
protected |
Definition at line 4591 of file bmserial.h.
References bm::bit_block_xor(), BM_ASSERT, BM_IS_GAP, BMGAP_PTR, BMNOEXCEPT, BMRESTRICT, FULL_BLOCK_REAL_ADDR, bm::gap_convert_to_bitset(), bm::get_block_coord(), IS_FULL_BLOCK, ref_vect_, x_nb_, xor_block_, xor_chain_, and xor_chain_size_.
Referenced by xor_decode().
|
protected |
Definition at line 4738 of file bmserial.h.
References BMNOEXCEPT, x_nb_, x_ref_d64_, x_ref_idx_, and xor_chain_size_.
Referenced by deserialize(), and xor_decode().
|
protected |
Definition at line 674 of file bmserial.h.
Referenced by deserialize(), deserializer(), set_ref_vectors(), xor_decode(), and ~deserializer().
|
protected |
Definition at line 668 of file bmserial.h.
Referenced by deserializer().
|
protected |
Definition at line 670 of file bmserial.h.
Referenced by deserialize_gap(), and deserializer().
|
protected |
Definition at line 694 of file bmserial.h.
Referenced by decode_arr_sblock(), deserialize(), and xor_decode().
|
protected |
Definition at line 695 of file bmserial.h.
Referenced by decode_arr_sblock(), deserialize(), and xor_decode().
|
protected |
Definition at line 693 of file bmserial.h.
Referenced by decode_arr_sblock(), deserialize(), deserializer(), and xor_decode().
|
protected |
Definition at line 680 of file bmserial.h.
Referenced by deserialize(), deserializer(), xor_decode(), and ~deserializer().
|
protected |
Definition at line 681 of file bmserial.h.
Referenced by deserialize(), deserializer(), and xor_decode().
|
protected |
Definition at line 673 of file bmserial.h.
Referenced by deserialize(), and deserializer().
|
protected |
ref.vector for XOR compression
Definition at line 678 of file bmserial.h.
Referenced by deserialize(), deserializer(), set_ref_vectors(), xor_decode(), and xor_decode_chain().
|
protected |
Definition at line 669 of file bmserial.h.
Referenced by deserializer().
|
protected |
Definition at line 671 of file bmserial.h.
Referenced by decode_bit_block(), decode_block_bit(), decode_block_bit_interval(), deserialize(), deserialize_gap(), deserializer(), and ~deserializer().
|
protected |
Definition at line 687 of file bmserial.h.
Referenced by deserialize(), xor_decode(), xor_decode_chain(), and xor_reset().
|
protected |
Definition at line 686 of file bmserial.h.
Referenced by deserialize(), deserialize_gap(), xor_decode(), and xor_reset().
|
protected |
Definition at line 685 of file bmserial.h.
Referenced by deserialize(), xor_decode(), and xor_reset().
|
protected |
xor product
Definition at line 679 of file bmserial.h.
Referenced by deserialize(), deserializer(), set_ref_vectors(), xor_decode(), xor_decode_chain(), and ~deserializer().
|
protected |
Definition at line 689 of file bmserial.h.
Referenced by deserialize(), and xor_decode_chain().
|
protected |
Definition at line 688 of file bmserial.h.
Referenced by deserialize(), xor_decode(), xor_decode_chain(), and xor_reset().