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 () | |
More... | |
~deserializer () | |
More... | |
size_t | deserialize (bvector_type &bv, const unsigned char *buf, bm::word_t *temp_block=0) |
More... | |
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) More... | |
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 More... | |
void | unset_range () BMNOEXCEPT |
Disable range deserialization. More... | |
void | reset () BMNOEXCEPT |
reset range deserialization and reference vectors More... | |
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 |
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 More... | |
static const char * | err_msg () BMNOEXCEPT |
Deserializer for bit-vector.
Definition at line 568 of file bmserial.h.
|
protected |
Definition at line 4006 of file bmserial.h.
References bm::gap_max_bits, and bm::set_sub_array_size.
|
protected |
Definition at line 4087 of file bmserial.h.
References bm::bit_block_set(), BM_IS_GAP, IS_FULL_BLOCK, and bm::set_bit().
|
protected |
Definition at line 3941 of file bmserial.h.
References bm::bit_block_or(), bm::bit_block_set(), bm::bit_invert(), BM_ASSERT, BM_IS_GAP, bm::clear_bit(), IS_FULL_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, and bm::set_block_bitgap_bienc.
|
protected |
Definition at line 4040 of file bmserial.h.
References bm::BM_OR, and bm::set_block_size.
|
protected |
Definition at line 4060 of file bmserial.h.
References bm::bit_block_set(), bm::BM_OR, and bm::set_block_size.
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 4125 of file bmserial.h.
References 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::gap_levels, bm::gap_max_bits, bm::get_block_coord(), 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, and bm::set_total_blocks.
Referenced by bm::deserialize(), bm::operation_deserializer< BV >::deserialize(), and bm::deserialize_range().
|
protected |
Definition at line 3791 of file bmserial.h.
References BM_ASSERT, BM_FALLTHROUGH, BMGAP_PTR, BMPTR_SETBIT0, BMSET_PTRGAP, bm::gap_calc_level(), bm::gap_convert_to_bitset(), bm::gap_invert(), bm::gap_length(), bm::gap_max_bits, bm::gap_set_array(), bm::get_block_coord(), 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, and bm::set_gap_level().
|
inline |
reset range deserialization and reference vectors
Definition at line 624 of file bmserial.h.
References bm::deserializer< BV, DEC >::set_ref_vectors(), and bm::deserializer< BV, DEC >::unset_range().
|
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.
References bm::deserializer< BV, DEC >::idx_from_, bm::deserializer< BV, DEC >::idx_to_, and bm::deserializer< BV, DEC >::is_range_set_.
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 3782 of file bmserial.h.
Referenced by bm::deserialize(), bm::deserialize_range(), and bm::deserializer< BV, DEC >::reset().
|
inline |
Disable range deserialization.
Definition at line 619 of file bmserial.h.
References bm::deserializer< BV, DEC >::is_range_set_.
Referenced by bm::deserializer< BV, DEC >::reset().
|
protected |
Definition at line 4620 of file bmserial.h.
References 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(), IS_FULL_BLOCK, and bm::set_block_shift.
|
protected |
Definition at line 4589 of file bmserial.h.
References bm::bit_block_xor(), BM_ASSERT, BM_IS_GAP, BMGAP_PTR, BMRESTRICT, FULL_BLOCK_REAL_ADDR, bm::gap_convert_to_bitset(), bm::get_block_coord(), and IS_FULL_BLOCK.
|
protected |
Definition at line 676 of file bmserial.h.
Referenced by bm::deserializer< BV, DEC >::deserializer().
|
protected |
Definition at line 670 of file bmserial.h.
Referenced by bm::deserializer< BV, DEC >::deserializer().
|
protected |
Definition at line 672 of file bmserial.h.
Referenced by bm::deserializer< BV, DEC >::deserializer().
|
protected |
Definition at line 697 of file bmserial.h.
Referenced by bm::deserializer< BV, DEC >::set_range().
|
protected |
Definition at line 698 of file bmserial.h.
Referenced by bm::deserializer< BV, DEC >::set_range().
|
protected |
Definition at line 696 of file bmserial.h.
Referenced by bm::deserializer< BV, DEC >::set_range(), bm::deserializer< BV, DEC >::unset_range(), and bm::iterator_deserializer< BV, SerialIterator >::unset_range().
|
protected |
Definition at line 675 of file bmserial.h.
Referenced by bm::deserializer< BV, DEC >::deserializer().
|
protected |
ref.vector for XOR compression
Definition at line 680 of file bmserial.h.
Referenced by bm::operation_deserializer< BV >::set_ref_vectors().
|
protected |
Definition at line 671 of file bmserial.h.
Referenced by bm::deserializer< BV, DEC >::deserializer().
|
protected |
Definition at line 673 of file bmserial.h.
Referenced by bm::deserializer< BV, DEC >::deserializer().
|
protected |
xor product
Definition at line 681 of file bmserial.h.