dlvhex  2.5.0
vs10/bm/bmserial.h File Reference
#include "bm.h"
#include "encoding.h"
#include "bmdef.h"
#include "bmfunc.h"
#include "bmtrans.h"
#include "bmalgo_impl.h"
#include "bmutil.h"
#include "bmundef.h"
Include dependency graph for bmserial.h:

Go to the source code of this file.

Data Structures

class  bm::serializer< BV >
 Bit-vector serialization class. More...
class  bm::deseriaizer_base< DEC >
 Base deserialization class. More...
class  bm::deserializer< BV, DEC >
 Class deserializer. More...
class  bm::iterator_deserializer< BV, SerialIterator >
 Iterator to walk forward the serialized stream. More...
class  bm::serial_stream_iterator< DEC >
 Serialization stream iterator. More...
class  bm::operation_deserializer< BV >
 Class deserializer, can perform logical operation on bit-vector and serialized bit-vector. More...

Namespaces

namespace  bm

Defines

#define BM__H__INCLUDED__
#define SER_NEXT_GRP(enc, nb, B_1ZERO, B_8ZERO, B_16ZERO, B_32ZERO)
#define BM_SET_ONE_BLOCKS(x)

Enumerations

enum  bm::serialization_header_mask {
  bm::BM_HM_DEFAULT = 1, bm::BM_HM_RESIZE = (1 << 1), bm::BM_HM_ID_LIST = (1 << 2), bm::BM_HM_NO_BO = (1 << 3),
  bm::BM_HM_NO_GAPL = (1 << 4), bm::BM_HM_DEFAULT = 1, bm::BM_HM_RESIZE = (1 << 1), bm::BM_HM_ID_LIST = (1 << 2),
  bm::BM_HM_NO_BO = (1 << 3), bm::BM_HM_NO_GAPL = (1 << 4)
}
enum  bm::serialization_flags { bm::BM_NO_BYTE_ORDER = 1, bm::BM_NO_GAP_LENGTH = (1 << 1), bm::BM_NO_BYTE_ORDER = 1, bm::BM_NO_GAP_LENGTH = (1 << 1) }
 Bit mask flags for serialization algorithm. More...

Functions

template<class BV >
unsigned bm::serialize (const BV &bv, unsigned char *buf, bm::word_t *temp_block, unsigned serialization_flags=0)
 Saves bitvector into memory.
template<class BV >
unsigned bm::serialize (BV &bv, unsigned char *buf, unsigned serialization_flags=0)
 Saves bitvector into memory. Allocates temporary memory block for bvector.
template<class BV >
unsigned bm::deserialize (BV &bv, const unsigned char *buf, bm::word_t *temp_block=0)
 Bitvector deserialization from memory.

Variables

const unsigned char bm::set_block_end = 0
 End of serialization.
const unsigned char bm::set_block_1zero = 1
 One all-zero block.
const unsigned char bm::set_block_1one = 2
 One block all-set (1111...)
const unsigned char bm::set_block_8zero = 3
 Up to 256 zero blocks.
const unsigned char bm::set_block_8one = 4
 Up to 256 all-set blocks.
const unsigned char bm::set_block_16zero = 5
 Up to 65536 zero blocks.
const unsigned char bm::set_block_16one = 6
 UP to 65536 all-set blocks.
const unsigned char bm::set_block_32zero = 7
 Up to 4G zero blocks.
const unsigned char bm::set_block_32one = 8
 UP to 4G all-set blocks.
const unsigned char bm::set_block_azero = 9
 All other blocks zero.
const unsigned char bm::set_block_aone = 10
 All other blocks one.
const unsigned char bm::set_block_bit = 11
 Plain bit block.
const unsigned char bm::set_block_sgapbit = 12
 SGAP compressed bitblock.
const unsigned char bm::set_block_sgapgap = 13
 SGAP compressed GAP block.
const unsigned char bm::set_block_gap = 14
 Plain GAP block.
const unsigned char bm::set_block_gapbit = 15
 GAP compressed bitblock.
const unsigned char bm::set_block_arrbit = 16
 List of bits ON.
const unsigned char bm::set_block_bit_interval = 17
 Interval block.
const unsigned char bm::set_block_arrgap = 18
 List of bits ON (GAP block)
const unsigned char bm::set_block_bit_1bit = 19
 Bit block with 1 bit ON.
const unsigned char bm::set_block_gap_egamma = 20
 Gamma compressed GAP block.
const unsigned char bm::set_block_arrgap_egamma = 21
 Gamma compressed delta GAP array.
const unsigned char bm::set_block_bit_0runs = 22
 Bit block with encoded zero intervals.
const unsigned char bm::set_block_arrgap_egamma_inv = 23
 Gamma compressed inverted delta GAP array.
const unsigned char bm::set_block_arrgap_inv = 24
 List of bits OFF (GAP block)

Define Documentation

Definition at line 37 of file bmserial.h.

#define BM_SET_ONE_BLOCKS (   x)
Value:
{\
         unsigned end_block = i + x; \
         for (;i < end_block; ++i) \
            bman.set_block_all_set(i); \
    } \
    --i

Definition at line 126 of file bmserial.h.

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

#define SER_NEXT_GRP (   enc,
  nb,
  B_1ZERO,
  B_8ZERO,
  B_16ZERO,
  B_32ZERO 
)
Value:
if (nb == 1) \
      enc.put_8(B_1ZERO); \
   else if (nb < 256) \
   { \
      enc.put_8(B_8ZERO); \
      enc.put_8((unsigned char)nb); \
   } \
   else if (nb < 65536) \
   { \
      enc.put_8(B_16ZERO); \
      enc.put_16((unsigned short)nb); \
   } \
   else \
   {\
      enc.put_8(B_32ZERO); \
      enc.put_32(nb); \
   }

Definition at line 106 of file bmserial.h.

Referenced by bm::serializer< BV >::serialize().