12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #ifndef __DICT_ZIP_LIB_H__
- #define __DICT_ZIP_LIB_H__
- #include <ctime>
- #include <string>
- #include <zlib.h>
- #include "mapfile.hpp"
- #define DICT_CACHE_SIZE 5
- struct dictCache
- {
- int chunk;
- char *inBuffer;
- int stamp;
- int count;
- };
- struct dictData
- {
- dictData()
- {}
- bool open(const std::string& filename, int computeCRC);
- void close();
- void read(char *buffer, unsigned long start, unsigned long size);
- ~dictData()
- {
- close();
- }
- private:
- const char *start; /* start of mmap'd area */
- const char *end; /* end of mmap'd area */
- unsigned long size; /* size of mmap */
- int type;
- z_stream zStream;
- int initialized;
- int headerLength;
- int method;
- int flags;
- time_t mtime;
- int extraFlags;
- int os;
- int version;
- int chunkLength;
- int chunkCount;
- int *chunks;
- unsigned long *offsets; /* Sum-scan of chunks. */
- std::string origFilename;
- std::string comment;
- unsigned long crc;
- unsigned long length;
- unsigned long compressedLength;
- dictCache cache[DICT_CACHE_SIZE];
- MapFile mapfile;
- int read_header(const std::string &filename, int computeCRC);
- };
- #endif//!__DICT_ZIP_LIB_H__
|