- 論壇徽章:
- 9
|
本帖最后由 wlmqgzm 于 2016-05-09 21:30 編輯
回復(fù) 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; // 用于統(tǒng)計隊列長度的原子量
}; |
|