BitMagic-C++
Public Types | Public Member Functions | Protected Attributes
bm::sparse_vector_serial_layout< SV > Struct Template Reference

layout class for serialization buffer structure More...

#include <bmsparsevec_serial.h>

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

Public Types

typedef SV::value_type value_type
 
typedef SV::bvector_type bvector_type
 
typedef serializer< bvector_type >::buffer buffer_type
 

Public Member Functions

 sparse_vector_serial_layout ()
 
 ~sparse_vector_serial_layout ()
 
unsigned char * reserve (size_t capacity)
 resize capacity More...
 
size_t size () const
 return current serialized size More...
 
void resize (size_t ssize)
 Set new serialized size. More...
 
size_t capacity () const
 return serialization buffer capacity More...
 
void freemem ()
 free memory More...
 
void set_plain (unsigned i, unsigned char *ptr, size_t buf_size)
 Set plain output pointer and size. More...
 
const unsigned char * get_plain (unsigned i) const
 Get plain pointer. More...
 
const unsigned char * buf () const
 Return serialization buffer pointer. More...
 
const unsigned char * data () const
 Return serialization buffer pointer. More...
 

Protected Attributes

buffer_type buf_
 serialization buffer More...
 
unsigned char * plain_ptrs_ [SV::sv_plains]
 pointers on serialized bit-plains More...
 
size_t plane_size_ [SV::sv_plains]
 serialized plain size More...
 

Detailed Description

template<class SV>
struct bm::sparse_vector_serial_layout< SV >

layout class for serialization buffer structure

Class keeps a memory block sized for the target sparse vector BLOB. This class also provides acess to bit-plane memory, so it becomes possible to use parallel storage methods to save bit-plains into different storage shards.

Examples
inv_list.cpp, rscsample01.cpp, rscsample02.cpp, strsvsample03.cpp, strsvsample05.cpp, svsample02.cpp, and svsample08.cpp.

Definition at line 57 of file bmsparsevec_serial.h.

Member Typedef Documentation

◆ buffer_type

template<class SV >
typedef serializer<bvector_type>::buffer bm::sparse_vector_serial_layout< SV >::buffer_type

Definition at line 61 of file bmsparsevec_serial.h.

◆ bvector_type

template<class SV >
typedef SV::bvector_type bm::sparse_vector_serial_layout< SV >::bvector_type

Definition at line 60 of file bmsparsevec_serial.h.

◆ value_type

template<class SV >
typedef SV::value_type bm::sparse_vector_serial_layout< SV >::value_type

Definition at line 59 of file bmsparsevec_serial.h.

Constructor & Destructor Documentation

◆ sparse_vector_serial_layout()

template<class SV >
bm::sparse_vector_serial_layout< SV >::sparse_vector_serial_layout ( )
inline

Definition at line 63 of file bmsparsevec_serial.h.

◆ ~sparse_vector_serial_layout()

template<class SV >
bm::sparse_vector_serial_layout< SV >::~sparse_vector_serial_layout ( )
inline

Definition at line 65 of file bmsparsevec_serial.h.

Member Function Documentation

◆ buf()

template<class SV >
const unsigned char* bm::sparse_vector_serial_layout< SV >::buf ( ) const
inline

Return serialization buffer pointer.

Definition at line 106 of file bmsparsevec_serial.h.

References bm::sparse_vector_serial_layout< SV >::buf_.

Referenced by main().

◆ capacity()

template<class SV >
size_t bm::sparse_vector_serial_layout< SV >::capacity ( ) const
inline

◆ data()

template<class SV >
const unsigned char* bm::sparse_vector_serial_layout< SV >::data ( ) const
inline

Return serialization buffer pointer.

Definition at line 108 of file bmsparsevec_serial.h.

References bm::sparse_vector_serial_layout< SV >::buf_.

Referenced by write_as_rsc_svector(), and write_as_svector().

◆ freemem()

template<class SV >
void bm::sparse_vector_serial_layout< SV >::freemem ( )
inline

◆ get_plain()

template<class SV >
const unsigned char* bm::sparse_vector_serial_layout< SV >::get_plain ( unsigned  i) const
inline

◆ reserve()

template<class SV >
unsigned char* bm::sparse_vector_serial_layout< SV >::reserve ( size_t  capacity)
inline

resize capacity

Parameters
capacity- new capacity
Returns
new buffer or 0 if failed

Definition at line 72 of file bmsparsevec_serial.h.

References bm::sparse_vector_serial_layout< SV >::buf_, bm::sparse_vector_serial_layout< SV >::capacity(), and bm::sparse_vector_serial_layout< SV >::freemem().

Referenced by bm::sparse_vector_serializer< SV >::serialize().

◆ resize()

template<class SV >
void bm::sparse_vector_serial_layout< SV >::resize ( size_t  ssize)
inline

Set new serialized size.

Definition at line 87 of file bmsparsevec_serial.h.

References bm::sparse_vector_serial_layout< SV >::buf_.

Referenced by bm::sparse_vector_serializer< SV >::serialize().

◆ set_plain()

template<class SV >
void bm::sparse_vector_serial_layout< SV >::set_plain ( unsigned  i,
unsigned char *  ptr,
size_t  buf_size 
)
inline

◆ size()

template<class SV >
size_t bm::sparse_vector_serial_layout< SV >::size ( ) const
inline

return current serialized size

Definition at line 84 of file bmsparsevec_serial.h.

References bm::sparse_vector_serial_layout< SV >::buf_.

Referenced by compress_inv_dump_file(), main(), write_as_rsc_svector(), and write_as_svector().

Field Documentation

◆ buf_

template<class SV >
buffer_type bm::sparse_vector_serial_layout< SV >::buf_
protected

◆ plain_ptrs_

template<class SV >
unsigned char* bm::sparse_vector_serial_layout< SV >::plain_ptrs_[SV::sv_plains]
protected

pointers on serialized bit-plains

Definition at line 115 of file bmsparsevec_serial.h.

Referenced by bm::sparse_vector_serial_layout< SV >::get_plain(), and bm::sparse_vector_serial_layout< SV >::set_plain().

◆ plane_size_

template<class SV >
size_t bm::sparse_vector_serial_layout< SV >::plane_size_[SV::sv_plains]
protected

serialized plain size

Definition at line 116 of file bmsparsevec_serial.h.

Referenced by bm::sparse_vector_serial_layout< SV >::set_plain().


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