BitMagic-C++
Public Types | Public Member Functions
bm::operation_deserializer< BV > Class Template Reference

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

#include <bmserial.h>

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. More...
 
void deserialize_range (bvector_type &bv, const unsigned char *buf, size_type idx_from, size_type idx_to)
  More...
 
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. More...
 
void deserialize_range (bvector_type &bv, const unsigned char *buf, bm::word_t *, size_type idx_from, size_type idx_to)
  More...
 
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) More...
 

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 929 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 985 of file bmserial.h.

References bm::deserializer< BV, DEC >::deserialize().

◆ 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 6579 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(), 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 999 of file bmserial.h.

References bm::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 6659 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.

◆ 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 1012 of file bmserial.h.

References bm::deserializer< BV, DEC >::ref_vect_.


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