blob: c5f0f1a714a706a47be0c3b34570eec53c85d894 [file] [log] [blame]
Pravin Kumarvel0a4a6c12016-10-17 11:00:57 +05301/* egprs_rlc_compression.h
2 * Routines for EGPRS RLC bitmap compression handling
3 */
4
5#pragma once
6
7struct egprs_compress_node;
8
9/* Singleton to manage the EGPRS compression algorithm. */
10class egprs_compress
11{
12public:
13 static int decompress_crbb(int8_t compress_bmap_len,
14 bool start, const uint8_t *orig_buf,
15 bitvec *dest);
16 egprs_compress();
17
18private:
19 egprs_compress_node *ones_list;
20 egprs_compress_node *zeros_list;
21
22 void decode_tree_init(void);
23 static egprs_compress *s_instance;
24 static egprs_compress*instance();
25 egprs_compress_node *create_tree_node(void *);
26 void build_codewords(egprs_compress_node *root, const char *cdwd[]);
27 /* singleton class, so this private destructor is left unimplemented. */
28 ~egprs_compress();
29};