BitMagic-C++
bm::operation_deserializer< BV > Class Template Reference

Deserializer, performs logical operations between bit-vector and serialized bit-vector. More...

#include <bmserial.h>

Inheritance diagram for bm::operation_deserializer< BV >:

Public Types

typedef BV bvector_type
typedef BV::allocator_type allocator_type
typedef bvector_type::size_type size_type
typedef bm::bv_ref_vector< BV > bv_ref_vector_type

Public Member Functions

 operation_deserializer ()
 ~operation_deserializer ()
size_type deserialize (bvector_type &bv, const unsigned char *buf, set_operation op, bool exit_on_one=false)
 Deserialize bvector using buffer as set operation argument.
void deserialize_range (bvector_type &bv, const unsigned char *buf, size_type idx_from, size_type idx_to)
size_type deserialize (bvector_type &bv, const unsigned char *buf, bm::word_t *, set_operation op=bm::set_OR, bool exit_on_one=false)
 Obsolete! Deserialize bvector using buffer as set operation argument.
void deserialize_range (bvector_type &bv, const unsigned char *buf, bm::word_t *, size_type idx_from, size_type idx_to)
void set_ref_vectors (const bv_ref_vector_type *ref_vect)
 Attach collection of reference vectors for XOR serialization (no transfer of ownership for the pointer).

Detailed Description

template<typename BV>
class bm::operation_deserializer< BV >

Deserializer, performs logical operations between bit-vector and serialized bit-vector.

This utility class potentially provides faster and/or more memory efficient operation than more conventional deserialization into memory bvector and then logical operation

Examples
bvsetalgebra.cpp, sample14.cpp, xsample01.cpp, and xsample07a.cpp.

Definition at line 926 of file bmserial.h.

Member Typedef Documentation

◆ allocator_type

template<typename BV>
typedef BV::allocator_type bm::operation_deserializer< BV >::allocator_type

Definition at line 930 of file bmserial.h.

◆ bv_ref_vector_type

template<typename BV>
typedef bm::bv_ref_vector<BV> bm::operation_deserializer< BV >::bv_ref_vector_type

Definition at line 932 of file bmserial.h.

◆ bvector_type

template<typename BV>
typedef BV bm::operation_deserializer< BV >::bvector_type

Definition at line 929 of file bmserial.h.

◆ size_type

template<typename BV>
typedef bvector_type::size_type bm::operation_deserializer< BV >::size_type

Definition at line 931 of file bmserial.h.

Constructor & Destructor Documentation

◆ operation_deserializer()

template<class BV>
bm::operation_deserializer< BV >::operation_deserializer ( )

Definition at line 6375 of file bmserial.h.

◆ ~operation_deserializer()

template<class BV>
bm::operation_deserializer< BV >::~operation_deserializer ( )

Definition at line 6383 of file bmserial.h.

Member Function Documentation

◆ deserialize() [1/2]

template<typename BV>
size_type bm::operation_deserializer< BV >::deserialize ( bvector_type & bv,
const unsigned char * buf,
bm::word_t * ,
set_operation op = bm::set_OR,
bool exit_on_one = false )
inline

Obsolete! Deserialize bvector using buffer as set operation argument.

Parameters
bv- target bvector
buf- serialized buffer as a logical argument
op- set algebra operation (default: OR)
exit_on_one- quick exit if set operation found some result
Returns
bitcount (for COUNT_* operations)

Definition at line 982 of file bmserial.h.

References deserialize(), and bm::set_OR.

◆ deserialize() [2/2]

template<class BV>
operation_deserializer< BV >::size_type bm::operation_deserializer< BV >::deserialize ( bvector_type & bv,
const unsigned char * buf,
set_operation op,
bool exit_on_one = false )

Deserialize bvector using buffer as set operation argument.

Parameters
bv- target bvector
buf- serialized buffer used as as a logical operation argument
op- set algebra operation (default: OR)
exit_on_one- quick exit if set operation found some result
Returns
bitcount (for COUNT_* operations)
Examples
bvsetalgebra.cpp, sample14.cpp, xsample01.cpp, and xsample07a.cpp.

Definition at line 6581 of file bmserial.h.

References bm::BigEndian, BM_ASSERT, bm::BM_GAP, bm::BM_HM_HXOR, bm::BM_HM_NO_BO, bm::BM_HM_SPARSE, bm::globals< T >::byte_order(), bm::decoder_base::get_8(), bm::LittleEndian, bm::process_operation(), bm::set_ASSIGN, and bm::set_OR.

Referenced by compute_group(), DemoAND(), DemoOR(), DemoSUB(), DemoXOR(), deserialize(), main(), resolve_duplicates(), and speed_test_bvs_index().

◆ deserialize_range() [1/2]

template<typename BV>
void bm::operation_deserializer< BV >::deserialize_range ( bvector_type & bv,
const unsigned char * buf,
bm::word_t * ,
size_type idx_from,
size_type idx_to )
inline

Deserialize range using mask vector (AND)

Parameters
bv- target bvector (should be set ranged)
buf- serialized buffer pointer
idx_from- range of bits set for deserialization [from..to]
idx_to- range of bits [from..to]

Definition at line 996 of file bmserial.h.

References deserialize_range().

◆ deserialize_range() [2/2]

template<class BV>
void bm::operation_deserializer< BV >::deserialize_range ( bvector_type & bv,
const unsigned char * buf,
size_type idx_from,
size_type idx_to )

Deserialize range using mask vector (AND)

Parameters
bv- target bvector (should be set ranged)
buf- serialized buffer pointer
idx_from- range of bits set for deserialization [from..to]
idx_to- range of bits [from..to]

Definition at line 6661 of file bmserial.h.

References bm::BigEndian, BM_ASSERT, bm::BM_GAP, bm::BM_HM_HXOR, bm::BM_HM_NO_BO, bm::BM_HM_SPARSE, bm::globals< T >::byte_order(), bm::decoder_base::get_8(), bm::LittleEndian, bm::bvector< Alloc >::opt_compress, and bm::set_AND.

Referenced by deserialize_range().

◆ set_ref_vectors()

template<typename BV>
void bm::operation_deserializer< BV >::set_ref_vectors ( const bv_ref_vector_type * ref_vect)
inline

Attach collection of reference vectors for XOR serialization (no transfer of ownership for the pointer).

Definition at line 1009 of file bmserial.h.


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