|
BitMagic-C++
|
Serialization / compression of bvector<>. Set theoretical operations on compressed BLOBs. More...
#include "encoding.h"#include "bmfunc.h"#include "bmtrans.h"#include "bmalgo.h"#include "bmutil.h"#include "bmbuffer.h"#include "bmdef.h"#include "bmxor.h"

Go to the source code of this file.
Data Structures | |
| class | bm::serializer< BV > |
| Bit-vector serialization class. More... | |
| struct | bm::serializer< BV >::bookmark_state |
| Bookmark state structure. More... | |
| class | bm::deseriaizer_base< DEC, BLOCK_IDX > |
| Base deserialization class. More... | |
| class | bm::deserializer< BV, DEC > |
| Deserializer for bit-vector. More... | |
| class | bm::iterator_deserializer< BV, SerialIterator > |
| Iterator to walk forward the serialized stream. More... | |
| class | bm::serial_stream_iterator< DEC, BLOCK_IDX > |
| Serialization stream iterator. More... | |
| class | bm::operation_deserializer< BV > |
| Deserializer, performs logical operations between bit-vector and serialized bit-vector. More... | |
Namespaces | |
| namespace | bm |
Macros | |
| #define | BM_SER_NEXT_GRP(enc, nb, B_1ZERO, B_8ZERO, B_16ZERO, B_32ZERO, B_64ZERO) |
Enumerations | |
| enum | bm::serialization_header_mask { bm::BM_HM_DEFAULT = 1 , bm::BM_HM_RESIZE = (1 << 1) , bm::BM_HM_ID_LIST = (1 << 2) , bm::BM_HM_NO_BO = (1 << 3) , bm::BM_HM_NO_GAPL = (1 << 4) , bm::BM_HM_64_BIT = (1 << 5) , bm::BM_HM_HXOR = (1 << 6) , bm::BM_HM_SPARSE = (1 << 7) } |
| enum | bm::serialization_flags { bm::BM_NO_BYTE_ORDER = 1 , bm::BM_NO_GAP_LENGTH = (1 << 1) } |
| Bit mask flags for serialization algorithm. More... | |
Functions | |
| template<class BV> | |
| size_t | bm::serialize (const BV &bv, unsigned char *buf, bm::word_t *temp_block=0, unsigned serialization_flags=0) |
| Saves bitvector into memory. | |
| template<class BV> | |
| size_t | bm::serialize (BV &bv, unsigned char *buf, unsigned serialization_flags=0) |
| Saves bitvector into memory. Allocates temporary memory block for bvector. | |
| template<class BV> | |
| size_t | bm::deserialize (BV &bv, const unsigned char *buf, bm::word_t *temp_block=0, const bm::bv_ref_vector< BV > *ref_vect=0) |
| Bitvector deserialization from a memory BLOB. | |
| template<class BV> | |
| void | bm::deserialize_range (BV &bv, const unsigned char *buf, typename BV::size_type from, typename BV::size_type to, const bm::bv_ref_vector< BV > *ref_vect=0) |
| Bitvector range deserialization from a memory BLOB. | |
| template<class BV> | |
| BV::size_type | bm::process_operation (BV &bv, BV &bv_tmp, bm::set_operation op) |
| Utility function to process operation using temp vector. | |
Variables | |
| const unsigned | bm::set_compression_max = 6 |
| Maximum supported compression level. | |
| const unsigned | bm::set_compression_default = 6 |
| Default compression level. | |
| const unsigned char | bm::set_block_end = 0 |
| End of serialization. | |
| const unsigned char | bm::set_block_1zero = 1 |
| One all-zero block. | |
| const unsigned char | bm::set_block_1one = 2 |
| One block all-set (1111...). | |
| const unsigned char | bm::set_block_8zero = 3 |
| Up to 256 zero blocks. | |
| const unsigned char | bm::set_block_8one = 4 |
| Up to 256 all-set blocks. | |
| const unsigned char | bm::set_block_16zero = 5 |
| Up to 65536 zero blocks. | |
| const unsigned char | bm::set_block_16one = 6 |
| UP to 65536 all-set blocks. | |
| const unsigned char | bm::set_block_32zero = 7 |
| Up to 4G zero blocks. | |
| const unsigned char | bm::set_block_32one = 8 |
| UP to 4G all-set blocks. | |
| const unsigned char | bm::set_block_azero = 9 |
| All other blocks zero. | |
| const unsigned char | bm::set_block_aone = 10 |
| All other blocks one. | |
| const unsigned char | bm::set_block_bit = 11 |
| Plain bit block. | |
| const unsigned char | bm::set_block_sgapbit = 12 |
| SGAP compressed bitblock. | |
| const unsigned char | bm::set_block_sgapgap = 13 |
| SGAP compressed GAP block. | |
| const unsigned char | bm::set_block_gap = 14 |
| Plain GAP block. | |
| const unsigned char | bm::set_block_gapbit = 15 |
| GAP compressed bitblock. | |
| const unsigned char | bm::set_block_arrbit = 16 |
| List of bits ON. | |
| const unsigned char | bm::set_block_bit_interval = 17 |
| Interval block. | |
| const unsigned char | bm::set_block_arrgap = 18 |
| List of bits ON (GAP block). | |
| const unsigned char | bm::set_block_bit_1bit = 19 |
| Bit block with 1 bit ON. | |
| const unsigned char | bm::set_block_gap_egamma = 20 |
| Gamma compressed GAP block. | |
| const unsigned char | bm::set_block_arrgap_egamma = 21 |
| Gamma compressed delta GAP array. | |
| const unsigned char | bm::set_block_bit_0runs = 22 |
| Bit block with encoded zero intervals. | |
| const unsigned char | bm::set_block_arrgap_egamma_inv = 23 |
| Gamma compressed inverted delta GAP array. | |
| const unsigned char | bm::set_block_arrgap_inv = 24 |
| List of bits OFF (GAP block). | |
| const unsigned char | bm::set_block_64zero = 25 |
| lots of zero blocks | |
| const unsigned char | bm::set_block_64one = 26 |
| lots of all-set blocks | |
| const unsigned char | bm::set_block_gap_bienc = 27 |
| Interpolated GAP block (legacy). | |
| const unsigned char | bm::set_block_arrgap_bienc = 28 |
| Interpolated GAP array. | |
| const unsigned char | bm::set_block_arrgap_bienc_inv = 29 |
| Interpolated GAP array (inverted). | |
| const unsigned char | bm::set_block_arrbit_inv = 30 |
| List of bits OFF. | |
| const unsigned char | bm::set_block_arr_bienc = 31 |
| Interpolated block as int array. | |
| const unsigned char | bm::set_block_arr_bienc_inv = 32 |
| Interpolated inverted block int array. | |
| const unsigned char | bm::set_block_bitgap_bienc = 33 |
| Interpolated bit-block as GAPs. | |
| const unsigned char | bm::set_block_bit_digest0 = 34 |
| H-compression with digest mask. | |
| const unsigned char | bm::set_block_ref_eq = 35 |
| block is a copy of a reference block | |
| const unsigned char | bm::set_block_xor_ref8 = 36 |
| block is masked XOR of a reference block (8-bit) | |
| const unsigned char | bm::set_block_xor_ref16 = 37 |
| block is masked XOR of a reference block (16-bit) | |
| const unsigned char | bm::set_block_xor_ref32 = 38 |
| ..... 32-bit (should never happen) | |
| const unsigned char | bm::set_block_xor_gap_ref8 = 39 |
| ..... 8-bit | |
| const unsigned char | bm::set_block_xor_gap_ref16 = 40 |
| ..... 16-bit | |
| const unsigned char | bm::set_block_xor_gap_ref32 = 41 |
| ..... 32-bit (should never happen) | |
| const unsigned char | bm::set_block_xor_chain = 42 |
| XOR chain (composit of sub-blocks). | |
| const unsigned char | bm::set_block_gap_bienc_v2 = 43 |
| Interpolated GAP block (v2). | |
| const unsigned char | bm::set_block_arrgap_bienc_v2 = 44 |
| //!< Interpolated GAP array (v2) | |
| const unsigned char | bm::set_block_arrgap_bienc_inv_v2 = 45 |
| Interpolated GAP array (inverted). | |
| const unsigned char | bm::set_block_bitgap_bienc_v2 = 46 |
| Interpolated bit-block as GAPs (v2 - reseved). | |
| const unsigned char | bm::set_nb_bookmark16 = 47 |
| jump ahead mark (16-bit) | |
| const unsigned char | bm::set_nb_bookmark24 = 48 |
| jump ahead mark (24-bit) | |
| const unsigned char | bm::set_nb_bookmark32 = 49 |
| jump ahead mark (32-bit) | |
| const unsigned char | bm::set_nb_sync_mark8 = 50 |
| bookmark sync point (8-bits) | |
| const unsigned char | bm::set_nb_sync_mark16 = 51 |
| const unsigned char | bm::set_nb_sync_mark24 = 52 |
| const unsigned char | bm::set_nb_sync_mark32 = 53 |
| const unsigned char | bm::set_nb_sync_mark48 = 54 |
| const unsigned char | bm::set_nb_sync_mark64 = 55 |
| ..... 64-bit (should never happen) | |
| const unsigned char | bm::set_sblock_bienc = 56 |
| super-block interpolated list | |
| const unsigned char | bm::set_block_arr_bienc_8bh = 57 |
| BIC block 8bit header. | |
| const unsigned char | bm::set_block_xor_ref8_um = 58 |
| block is un-masked XOR of a reference block (8-bit) | |
| const unsigned char | bm::set_block_xor_ref16_um = 59 |
| block is un-masked XOR of a reference block (16-bit) | |
| const unsigned char | bm::set_block_xor_ref32_um = 60 |
| ..... 32-bit (should never happen) | |
| const unsigned | bm::sparse_max_l5 = 48 |
| const unsigned | bm::sparse_max_l6 = 256 |
| const unsigned | bm::sblock_flag_sb16 = (1u << 0) |
| 16-bit SB index (8-bit by default) | |
| const unsigned | bm::sblock_flag_sb32 = (1u << 1) |
| 32-bit SB index | |
| const unsigned | bm::sblock_flag_min16 = (1u << 2) |
| 16-bit minv | |
| const unsigned | bm::sblock_flag_min24 = (1u << 3) |
| 24-bit minv | |
| const unsigned | bm::sblock_flag_min32 = bm::sblock_flag_min16 | bm::sblock_flag_min24 |
| const unsigned | bm::sblock_flag_len16 = (1u << 4) |
| 16-bit len (8-bit by default) | |
| const unsigned | bm::sblock_flag_max16 = (1u << 5) |
| const unsigned | bm::sblock_flag_max24 = (1u << 6) |
| const unsigned | bm::sblock_flag_max32 = bm::sblock_flag_max16 | bm::sblock_flag_max24 |
Serialization / compression of bvector<>. Set theoretical operations on compressed BLOBs.
Definition in file bmserial.h.
| #define BM_SER_NEXT_GRP | ( | enc, | |
| nb, | |||
| B_1ZERO, | |||
| B_8ZERO, | |||
| B_16ZERO, | |||
| B_32ZERO, | |||
| B_64ZERO ) |
Definition at line 2567 of file bmserial.h.
Referenced by bm::serializer< BV >::serialize().