Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
util::SeqEncoderBase Class Referenceabstract
+ Inheritance diagram for util::SeqEncoderBase:
+ Collaboration diagram for util::SeqEncoderBase:

Classes

struct  EntryVal
 
struct  ZstdCntx
 

Public Member Functions

const std::vector< strings::ByteRange > & compressed_blocks () const
 
void ClearCompressedData ()
 
void DisableSeqDictionary ()
 
uint32 Cost () const
 
void Flush ()
 

Protected Types

enum  State { PRE_DICT, LIT_DICT, NO_LIT_DICT }
 dictionary. In any case lit_data_ and len_ contain binary blobs and len codes to decode them.
 
using SymbId = LiteralDictBase::SymbId
 

Protected Member Functions

void AnalyzePreDict ()
 
bool LearnSeqDict (strings::ByteRange entry)
 
void CompressFlitSequences (bool final)
 
void CompressRawLit (bool final)
 
void AddCompressedBuf (const BlockHeader &bh)
 
void AnalyzeSequenceDict ()
 
bool PrepareForSymbAvailability (uint32_t cnt)
 
void BacktrackToRaw ()
 
void AddEncodedSymbols (SymbId *src, uint32_t cnt)
 
virtual uint32_t PrepareDict ()=0
 

Protected Attributes

base::PODArray< uint8 > lit_data_
 
base::PODArray< uint8 > prev_block_
 
base::PODArray< uint32 > len_code_
 
std::vector< std::unique_ptr< uint8_t[]> > compressed_bufs_
 
std::vector< strings::ByteRange > compressed_blocks_
 
bool disable_seq_dict_ = false
 
uint32_t literal_size_
 
enum util::SeqEncoderBase::State state_ = PRE_DICT
 
google::dense_hash_map< strings::ByteRange, EntryValseq_map_
 
base::PODArray< uint32_t > duplicate_seq_
 
SequenceArray dict_seq_
 
google::dense_hash_map< strings::ByteRange, uint32 > dict_seq_map_
 
base::PODArray< uint8 > compress_data_
 
base::PODArray< uint8 > tmp_space_
 
base::PODArray< SymbId > tmp_symb_
 
std::unique_ptr< ZstdCntxzstd_cntx_
 
std::unique_ptr< uint8_t[]> zstd_dict_
 
size_t zstd_dict_size_ = 0
 
size_t added_lit_cnt_ = 0
 
size_t dict_ref_bytes_ = 0
 
double dict_nominal_ratio_ = 0
 

Detailed Description

Definition at line 114 of file set_encoder.h.


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