Public Types | Static 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 bvector_type::size_type size_type

Static Public Member Functions

static size_type deserialize (bvector_type &bv, const unsigned char *buf, bm::word_t *temp_block, set_operation op=bm::set_OR, bool exit_on_one=false)
 Deserialize bvector using buffer as set operation argument. More...

Detailed Description

template<class 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

bvsetalgebra.cpp, sample14.cpp, and xsample01.cpp.

Definition at line 622 of file bmserial.h.

Member Typedef Documentation

◆ bvector_type

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

Definition at line 625 of file bmserial.h.

◆ size_type

Definition at line 626 of file bmserial.h.

Member Function Documentation

◆ deserialize()

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

Deserialize bvector using buffer as set operation argument.

bv- target bvector
buf- serialized buffer as a logical argument
temp_block- temporary block to avoid re-allocations
op- set algebra operation (default: OR)
exit_on_one- quick exit if set operation found some result
exit_on_one! exit early if any one are found

Definition at line 4248 of file bmserial.h.

References bm::BigEndian, BM_ASSERT, bm::BM_GAP, bm::BM_HM_NO_BO, bm::globals< T >::byte_order(), bm::combine_or(), bm::combine_sub(), bm::count_or(), bm::count_sub(), bm::count_xor(), bm::iterator_deserializer< BV, SerialIterator >::deserialize(), bm::deseriaizer_base< DEC >::err_msg(), bm::decoder_base::get_8(), bm::id_max, bm::LittleEndian, bm::set_AND, bm::set_ASSIGN, bm::set_block_shift, bm::set_COUNT, bm::set_COUNT_A, bm::set_COUNT_AND, bm::set_COUNT_B, bm::set_COUNT_OR, bm::set_COUNT_SUB_AB, bm::set_COUNT_SUB_BA, bm::set_COUNT_XOR, bm::set_END, bm::set_OR, bm::set_SUB, bm::set_sub_array_size, and bm::set_XOR.

Referenced by speed_test_bvs_index().

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