BitMagic-C++
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes
bm::sparse_vector_deserializer< SV > Class Template Reference

sparse vector de-serializer More...

#include <bmsparsevec_serial.h>

Collaboration diagram for bm::sparse_vector_deserializer< SV >:
Collaboration graph
[legend]

Public Types

typedef SV::bvector_type bvector_type
 
typedef const bvector_typebvector_type_const_ptr
 
typedef bvector_typebvector_type_ptr
 
typedef SV::value_type value_type
 
typedef SV::size_type size_type
 
typedef bvector_type::allocator_type::allocator_pool_type allocator_pool_type
 
typedef bm::serializer< bvector_type >::bv_ref_vector_type bv_ref_vector_type
 

Public Member Functions

 sparse_vector_deserializer ()
  More...
 
 ~sparse_vector_deserializer ()
 
void set_xor_ref (bv_ref_vector_type *bv_ref_ptr)
 Set external XOR reference vectors (data frame referenece vectors) More...
 
void deserialize (SV &sv, const unsigned char *buf, bool clear_sv=true)
  More...
 
void deserialize_range (SV &sv, const unsigned char *buf, size_type from, size_type to, bool clear_sv=true)
  More...
 
void deserialize (SV &sv, const unsigned char *buf, size_type from, size_type to)
  More...
 
void deserialize (SV &sv, const unsigned char *buf, const bvector_type &mask_bv)
  More...
 
void deserialize_structure (SV &sv, const unsigned char *buf)
  More...
 

Protected Types

typedef bvector_type::allocator_type alloc_type
 

Protected Member Functions

unsigned load_header (bm::decoder &dec, SV &sv, unsigned char &matr_s_ser)
 Deserialize header/version and other common info. More...
 
void deserialize_sv (SV &sv, const unsigned char *buf, const bvector_type *mask_bv, bool clear_sv)
  More...
 
void deserialize_planes (SV &sv, unsigned planes, const unsigned char *buf, const bvector_type *mask_bv=0)
 deserialize bit-vector planes More...
 
void load_planes_off_table (const unsigned char *buf, bm::decoder &dec, unsigned planes)
 load offset table More...
 
int load_null_plane (SV &sv, int planes, const unsigned char *buf, const bvector_type *mask_bv)
 load NULL bit-plane (returns new planes count) More...
 
void load_remap (SV &sv, const unsigned char *remap_buf_ptr)
 load string remap dict More...
 
void setup_xor_compression ()
 setup deserializers More...
 
void clear_xor_compression ()
 unset XOR compression vectors More...
 

Static Protected Member Functions

static void raise_invalid_header ()
 throw error on incorrect deserialization More...
 
static void raise_invalid_64bit ()
 throw error on incorrect deserialization More...
 
static void raise_invalid_bitdepth ()
 throw error on incorrect deserialization More...
 
static void raise_invalid_format ()
 throw error on incorrect deserialization More...
 
static void raise_missing_remap_matrix ()
 throw error on incorrect deserialization More...
 

Protected Attributes

const unsigned char * remap_buf_ptr_
 
alloc_type alloc_
  More...
 
bm::word_ttemp_block_
  More...
 
allocator_pool_type pool_
  More...
 
bvector_type plane_digest_bv_
 
bm::id64_t sv_size_
 
bm::id64_t digest_offset_
 
bm::deserializer< bvector_type, bm::decoderdeserial_
 
bm::operation_deserializer< bvector_typeop_deserial_
 
bm::rank_compressor< bvector_typersc_compressor_
 
bvector_type not_null_mask_bv_
  More...
 
bvector_type rsc_mask_bv_
  More...
 
bm::heap_vector< size_t, alloc_type, true > off_vect_
 
bm::heap_vector< unsigned, alloc_type, true > off32_vect_
 
rlen_vector_type remap_rlen_vect_
 
bv_ref_vector_type bv_ref_
 reference vector More...
 
bv_ref_vector_typebv_ref_ptr_
 external ref More...
 
bool idx_range_set_
  More...
 
size_type idx_range_from_
 
size_type idx_range_to_
 

Detailed Description

template<typename SV>
class bm::sparse_vector_deserializer< SV >

sparse vector de-serializer

Examples
rscsample02.cpp, rscsample05.cpp, strsvsample05.cpp, svsample02.cpp, and svsample08.cpp.

Definition at line 326 of file bmsparsevec_serial.h.

Member Function Documentation

◆ clear_xor_compression()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::clear_xor_compression
protected

unset XOR compression vectors

Definition at line 1176 of file bmsparsevec_serial.h.

◆ deserialize() [1/3]

template<typename SV >
void bm::sparse_vector_deserializer< SV >::deserialize ( SV &  sv,
const unsigned char *  buf,
bool  clear_sv = true 
)

Deserialize sparse vector

Parameters
sv- [out] target sparse vector to populate
buf- input BLOB source memory pointer
clear_sv- if true clears the target vector
See also
deserialize_range
Examples
rscsample02.cpp, rscsample05.cpp, strsvsample05.cpp, svsample02.cpp, and svsample08.cpp.

Definition at line 1203 of file bmsparsevec_serial.h.

Referenced by deserialize_df0(), deserialize_df2(), main(), SDemo2(), and bm::sparse_vector_deserialize().

◆ deserialize() [2/3]

template<typename SV >
void bm::sparse_vector_deserializer< SV >::deserialize ( SV &  sv,
const unsigned char *  buf,
const bvector_type mask_bv 
)
inline

Deserialize sparse vector using address mask vector Address mask defines (by set bits) which vector elements to be extracted from the compressed BLOB

Parameters
sv- [out] target sparse vector to populate
buf- source memory pointer
mask_bv- AND mask bit-vector (address gather vector)

Definition at line 397 of file bmsparsevec_serial.h.

References bm::sparse_vector_deserializer< SV >::deserialize_sv(), and bm::sparse_vector_deserializer< SV >::idx_range_set_.

◆ deserialize() [3/3]

template<typename SV >
void bm::sparse_vector_deserializer< SV >::deserialize ( SV &  sv,
const unsigned char *  buf,
size_type  from,
size_type  to 
)
inline

◆ deserialize_planes()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::deserialize_planes ( SV &  sv,
unsigned  planes,
const unsigned char *  buf,
const bvector_type mask_bv = 0 
)
protected

deserialize bit-vector planes

Definition at line 1452 of file bmsparsevec_serial.h.

References BM_ASSERT, and bm::bvector< Alloc >::opt_compress.

◆ deserialize_range()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::deserialize_range ( SV &  sv,
const unsigned char *  buf,
size_type  from,
size_type  to,
bool  clear_sv = true 
)

Deserialize sparse vector for the range [from, to]

Parameters
sv- [out] target sparse vector to populate
buf- input BLOB source memory pointer
from- start vector index for deserialization range
to- end vector index for deserialization range
clear_sv- if true clears the target vector
Examples
rscsample02.cpp, strsvsample05.cpp, and svsample08.cpp.

Definition at line 1241 of file bmsparsevec_serial.h.

Referenced by bm::sparse_vector_deserializer< SV >::deserialize(), and main().

◆ deserialize_structure()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::deserialize_structure ( SV &  sv,
const unsigned char *  buf 
)

Load serialization descriptor, create vectors but DO NOT perform full deserialization

Parameters
sv- [out] target sparse vector to populate
buf- source memory pointer
Examples
rscsample05.cpp.

Definition at line 1214 of file bmsparsevec_serial.h.

References BM_ASSERT.

Referenced by deserialize_df2().

◆ deserialize_sv()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::deserialize_sv ( SV &  sv,
const unsigned char *  buf,
const bvector_type mask_bv,
bool  clear_sv 
)
protected

◆ load_header()

template<typename SV >
unsigned bm::sparse_vector_deserializer< SV >::load_header ( bm::decoder dec,
SV &  sv,
unsigned char &  matr_s_ser 
)
protected

Deserialize header/version and other common info.

Returns
number of bit-planes

Definition at line 1397 of file bmsparsevec_serial.h.

References BM_ASSERT, bm::decoder::get_64(), and bm::decoder_base::get_8().

◆ load_null_plane()

template<typename SV >
int bm::sparse_vector_deserializer< SV >::load_null_plane ( SV &  sv,
int  planes,
const unsigned char *  buf,
const bvector_type mask_bv 
)
protected

load NULL bit-plane (returns new planes count)

Definition at line 1530 of file bmsparsevec_serial.h.

References BM_ASSERT, and bm::bvector< Alloc >::opt_compress.

◆ load_planes_off_table()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::load_planes_off_table ( const unsigned char *  buf,
bm::decoder dec,
unsigned  planes 
)
protected

◆ load_remap()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::load_remap ( SV &  sv,
const unsigned char *  remap_buf_ptr 
)
protected

◆ raise_invalid_64bit()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::raise_invalid_64bit
staticprotected

throw error on incorrect deserialization

Definition at line 1769 of file bmsparsevec_serial.h.

◆ raise_invalid_bitdepth()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::raise_invalid_bitdepth
staticprotected

throw error on incorrect deserialization

Definition at line 1781 of file bmsparsevec_serial.h.

◆ raise_invalid_format()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::raise_invalid_format
staticprotected

throw error on incorrect deserialization

Definition at line 1793 of file bmsparsevec_serial.h.

◆ raise_invalid_header()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::raise_invalid_header
staticprotected

throw error on incorrect deserialization

Definition at line 1757 of file bmsparsevec_serial.h.

◆ raise_missing_remap_matrix()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::raise_missing_remap_matrix
staticprotected

throw error on incorrect deserialization

Definition at line 1805 of file bmsparsevec_serial.h.

◆ set_xor_ref()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::set_xor_ref ( bv_ref_vector_type bv_ref_ptr)

Set external XOR reference vectors (data frame referenece vectors)

Parameters
bv_ref_ptr- external reference vector if NULL - resets the use of reference
Examples
rscsample05.cpp.

Definition at line 1156 of file bmsparsevec_serial.h.

Referenced by deserialize_df2().

◆ setup_xor_compression()

template<typename SV >
void bm::sparse_vector_deserializer< SV >::setup_xor_compression
protected

setup deserializers

Definition at line 1186 of file bmsparsevec_serial.h.

Field Documentation

◆ alloc_

template<typename SV >
alloc_type bm::sparse_vector_deserializer< SV >::alloc_
protected

◆ bv_ref_

template<typename SV >
bv_ref_vector_type bm::sparse_vector_deserializer< SV >::bv_ref_
protected

reference vector

Definition at line 489 of file bmsparsevec_serial.h.

◆ bv_ref_ptr_

template<typename SV >
bv_ref_vector_type* bm::sparse_vector_deserializer< SV >::bv_ref_ptr_
protected

external ref

Definition at line 490 of file bmsparsevec_serial.h.

◆ idx_range_set_

template<typename SV >
bool bm::sparse_vector_deserializer< SV >::idx_range_set_
protected

◆ not_null_mask_bv_

template<typename SV >
bvector_type bm::sparse_vector_deserializer< SV >::not_null_mask_bv_
protected

◆ pool_

template<typename SV >
allocator_pool_type bm::sparse_vector_deserializer< SV >::pool_
protected

◆ rsc_mask_bv_

template<typename SV >
bvector_type bm::sparse_vector_deserializer< SV >::rsc_mask_bv_
protected

◆ temp_block_

template<typename SV >
bm::word_t* bm::sparse_vector_deserializer< SV >::temp_block_
protected

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