NCBI C++ ToolKit
Public Types | Public Member Functions | Private Attributes | List of all members
bm::encoder Class Reference

Search Toolkit Book for bm::encoder

Memory encoding. More...

#include <util/bitset/encoding.h>

+ Collaboration diagram for bm::encoder:

Public Types

typedef unsigned char * position_type
 

Public Member Functions

 encoder (unsigned char *buf, size_t size) noexcept
 Construction. More...
 
void put_8 (unsigned char c) noexcept
 Puts one character into the encoding buffer. More...
 
void put_16 (bm::short_t s) noexcept
 Puts short word (16 bits) into the encoding buffer. More...
 
void put_16 (const bm::short_t *s, unsigned count) noexcept
 Method puts array of short words (16 bits) into the encoding buffer. More...
 
void put_24 (bm::word_t w) noexcept
 Puts 24 bits word into encoding buffer. More...
 
void put_32 (bm::word_t w) noexcept
 Puts 32 bits word into encoding buffer. More...
 
void put_32 (const bm::word_t *w, unsigned count) noexcept
 Encodes array of 32-bit words. More...
 
void put_48 (bm::id64_t w) noexcept
 Puts 48 bits word into encoding buffer. More...
 
void put_64 (bm::id64_t w) noexcept
 Puts 64 bits word into encoding buffer. More...
 
void put_h64 (bm::id64_t w) noexcept
 Puts 64 bits word into encoding buffer with h-compression. More...
 
void put_8_16_32 (unsigned w, unsigned char c8, unsigned char c16, unsigned char c32) noexcept
 but gat plus value based on its VBR evaluation More...
 
void put_prefixed_array_32 (unsigned char c, const bm::word_t *w, unsigned count) noexcept
 Encode 8-bit prefix + an array. More...
 
void put_prefixed_array_16 (unsigned char c, const bm::short_t *s, unsigned count, bool encode_count) noexcept
 Encode 8-bit prefix + an array. More...
 
void memcpy (const unsigned char *src, size_t count) noexcept
 copy bytes into target buffer or just rewind if src is NULL More...
 
size_t size () const noexcept
 Returns size of the current encoding stream. More...
 
unsigned char * get_pos () const noexcept
 Get current memory stream position. More...
 
void set_pos (unsigned char *buf_pos) noexcept
 Set current memory stream position. More...
 

Private Attributes

unsigned char * buf_
 
unsigned char * start_
 
size_t size_
 

Detailed Description

Memory encoding.

Class for encoding data into memory. Class handles aligment issues with the integer data types.

Definition at line 49 of file encoding.h.

Member Typedef Documentation

◆ position_type

typedef unsigned char* bm::encoder::position_type

Definition at line 52 of file encoding.h.

Constructor & Destructor Documentation

◆ encoder()

bm::encoder::encoder ( unsigned char *  buf,
size_t  size 
)
inlinenoexcept

Construction.

Parameters
buf- memory buffer pointer.
size- size of the buffer

Definition at line 398 of file encoding.h.

References size_.

Member Function Documentation

◆ get_pos()

encoder::position_type bm::encoder::get_pos ( ) const
inlinenoexcept

Get current memory stream position.

Definition at line 537 of file encoding.h.

References buf_.

Referenced by bm::compressed_collection_serializer< CBC >::serialize().

◆ memcpy()

void bm::encoder::memcpy ( const unsigned char *  src,
size_t  count 
)
inlinenoexcept

◆ put_16() [1/2]

void bm::encoder::put_16 ( bm::short_t  s)
inlinenoexcept

Puts short word (16 bits) into the encoding buffer.

Parameters
s- short word to encode

Definition at line 444 of file encoding.h.

References buf_, and memcpy().

Referenced by bm::serializer< BV >::encode_gap_block(), bm::sparse_vector_serializer< SV >::encode_remap_matrix(), put_8_16_32(), put_prefixed_array_16(), and bm::serializer< BV >::serialize().

◆ put_16() [2/2]

void bm::encoder::put_16 ( const bm::short_t s,
unsigned  count 
)
inlinenoexcept

Method puts array of short words (16 bits) into the encoding buffer.

Definition at line 459 of file encoding.h.

References a, b, BM_ASSERT, buf, buf_, count, and memcpy().

◆ put_24()

void bm::encoder::put_24 ( bm::word_t  w)
inlinenoexcept

Puts 24 bits word into encoding buffer.

Parameters
w- word to encode.

Definition at line 555 of file encoding.h.

References BM_ASSERT, and buf_.

Referenced by BitEncoderTest().

◆ put_32() [1/2]

void bm::encoder::put_32 ( bm::word_t  w)
inlinenoexcept

Puts 32 bits word into encoding buffer.

Parameters
w- word to encode.

Definition at line 571 of file encoding.h.

References buf_, and memcpy().

Referenced by bm::sparse_vector_serializer< SV >::encode_remap_matrix(), put_8_16_32(), put_prefixed_array_32(), bm::serializer< BV >::serialize(), and bm::sparse_vector_serializer< SV >::serialize().

◆ put_32() [2/2]

void bm::encoder::put_32 ( const bm::word_t w,
unsigned  count 
)
inlinenoexcept

Encodes array of 32-bit words.

Definition at line 644 of file encoding.h.

References a, b, buf, buf_, count, and memcpy().

◆ put_48()

void bm::encoder::put_48 ( bm::id64_t  w)
inlinenoexcept

Puts 48 bits word into encoding buffer.

Parameters
w- word to encode.

Definition at line 589 of file encoding.h.

References BM_ASSERT, and buf_.

Referenced by BitEncoderTest().

◆ put_64()

void bm::encoder::put_64 ( bm::id64_t  w)
inlinenoexcept

Puts 64 bits word into encoding buffer.

Parameters
w- word to encode.

Definition at line 606 of file encoding.h.

References buf_, and memcpy().

Referenced by bm::sparse_vector_serializer< SV >::encode_remap_matrix(), bm::serializer< BV >::serialize(), bm::compressed_collection_serializer< CBC >::serialize(), and bm::sparse_vector_serializer< SV >::serialize().

◆ put_8()

void bm::encoder::put_8 ( unsigned char  c)
inlinenoexcept

◆ put_8_16_32()

void bm::encoder::put_8_16_32 ( unsigned  w,
unsigned char  c8,
unsigned char  c16,
unsigned char  c32 
)
inlinenoexcept

but gat plus value based on its VBR evaluation

Definition at line 487 of file encoding.h.

References put_16(), put_32(), and put_8().

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

◆ put_h64()

void bm::encoder::put_h64 ( bm::id64_t  w)
inlinenoexcept

Puts 64 bits word into encoding buffer with h-compression.

Parameters
w- word to encode.

Definition at line 628 of file encoding.h.

References bm::compute_h64_mask(), i, and put_8().

Referenced by BitEncoderTest().

◆ put_prefixed_array_16()

void bm::encoder::put_prefixed_array_16 ( unsigned char  c,
const bm::short_t s,
unsigned  count,
bool  encode_count 
)
inlinenoexcept

Encode 8-bit prefix + an array.

Definition at line 417 of file encoding.h.

References count, put_16(), and put_8().

◆ put_prefixed_array_32()

void bm::encoder::put_prefixed_array_32 ( unsigned char  c,
const bm::word_t w,
unsigned  count 
)
inlinenoexcept

Encode 8-bit prefix + an array.

Definition at line 406 of file encoding.h.

References count, put_32(), and put_8().

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

◆ set_pos()

void bm::encoder::set_pos ( unsigned char *  buf_pos)
inlinenoexcept

Set current memory stream position.

Definition at line 545 of file encoding.h.

References buf_.

Referenced by bm::serializer< BV >::serialize(), and bm::compressed_collection_serializer< CBC >::serialize().

◆ size()

size_t bm::encoder::size ( void  ) const
inlinenoexcept

Member Data Documentation

◆ buf_

unsigned char* bm::encoder::buf_
private

◆ size_

size_t bm::encoder::size_
private

Definition at line 79 of file encoding.h.

Referenced by encoder(), and memcpy().

◆ start_

unsigned char* bm::encoder::start_
private

Definition at line 78 of file encoding.h.

Referenced by bm::decoder_base::decoder_base(), memcpy(), size(), and bm::decoder_base::size().


The documentation for this class was generated from the following file:
Modified on Fri Sep 20 14:58:07 2024 by modify_doxy.py rev. 669887