- 论坛徽章:
- 9
|
本帖最后由 wlmqgzm 于 2016-05-09 21:30 编辑
回复 18# VIP_fuck
C++ 类似下面这种
class Mapping_read
{
public:
Mapping_read( void );
unsigned int read( const unsigned long long ulong_read_file_offset, const unsigned int uint_read_length, unsigned char* uchars_out );
unsigned int lz4_read( const unsigned long long ulong_read_file_offset, const unsigned int uint_read_uncompress_length, const unsigned int uint_out_size, unsigned char* uchars_out );
const unsigned char* get_uchars_begin( void );
const char* get_chars_begin( void );
unsigned long long get_size( void);
protected:
unsigned long long d_ulong_file_size;
unsigned char *d_uchars_begin;
char *d_chars_begin;
// 以下为lz4压缩的读取缓存队列
std::unordered_map<unsigned long long, std::shared_ptr<std::vector<unsigned char> > > d_map_lz4_cache;// hash表 用于lz4 cache
std::list<unsigned long long> d_list_lz4_cache_offset; // 用于制造一个lz4 cache先进先出队列
std::atomic<unsigned int> d_list_lz4_cache_count; // 用于统计队列长度的原子量
}; |
|