34 #ifndef LZ4_HC_H_19834876238432 35 #define LZ4_HC_H_19834876238432 37 #if defined (__cplusplus) 47 #define LZ4HC_CLEVEL_MIN 3 48 #define LZ4HC_CLEVEL_DEFAULT 9 49 #define LZ4HC_CLEVEL_OPT_MIN 10 50 #define LZ4HC_CLEVEL_MAX 12 66 LZ4LIB_API
int LZ4_compress_HC (
const char* src,
char* dst,
int srcSize,
int dstCapacity,
int compressionLevel);
79 LZ4LIB_API
int LZ4_sizeofStateHC(
void);
80 LZ4LIB_API
int LZ4_compress_HC_extStateHC(
void* state,
const char* src,
char* dst,
int srcSize,
int maxDstSize,
int compressionLevel);
87 typedef union LZ4_streamHC_u LZ4_streamHC_t;
95 LZ4LIB_API LZ4_streamHC_t* LZ4_createStreamHC(
void);
96 LZ4LIB_API
int LZ4_freeStreamHC (LZ4_streamHC_t* streamHCPtr);
98 LZ4LIB_API
void LZ4_resetStreamHC (LZ4_streamHC_t* streamHCPtr,
int compressionLevel);
99 LZ4LIB_API
int LZ4_loadDictHC (LZ4_streamHC_t* streamHCPtr,
const char* dictionary,
int dictSize);
101 LZ4LIB_API
int LZ4_compress_HC_continue (LZ4_streamHC_t* streamHCPtr,
const char* src,
char* dst,
int srcSize,
int maxDstSize);
103 LZ4LIB_API
int LZ4_saveDictHC (LZ4_streamHC_t* streamHCPtr,
char* safeBuffer,
int maxDictSize);
132 #define LZ4HC_DICTIONARY_LOGSIZE 16 133 #define LZ4HC_MAXD (1<<LZ4HC_DICTIONARY_LOGSIZE) 134 #define LZ4HC_MAXD_MASK (LZ4HC_MAXD - 1) 136 #define LZ4HC_HASH_LOG 15 137 #define LZ4HC_HASHTABLESIZE (1 << LZ4HC_HASH_LOG) 138 #define LZ4HC_HASH_MASK (LZ4HC_HASHTABLESIZE - 1) 141 #if defined(__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) ) 144 typedef struct LZ4HC_CCtx_internal LZ4HC_CCtx_internal;
145 struct LZ4HC_CCtx_internal
147 uint32_t hashTable[LZ4HC_HASHTABLESIZE];
148 uint16_t chainTable[LZ4HC_MAXD];
151 const uint8_t* dictBase;
154 uint32_t nextToUpdate;
155 short compressionLevel;
157 const LZ4HC_CCtx_internal* dictCtx;
162 typedef struct LZ4HC_CCtx_internal LZ4HC_CCtx_internal;
163 struct LZ4HC_CCtx_internal
165 unsigned int hashTable[LZ4HC_HASHTABLESIZE];
166 unsigned short chainTable[LZ4HC_MAXD];
167 const unsigned char* end;
168 const unsigned char* base;
169 const unsigned char* dictBase;
170 unsigned int dictLimit;
171 unsigned int lowLimit;
172 unsigned int nextToUpdate;
173 short compressionLevel;
175 const LZ4HC_CCtx_internal* dictCtx;
180 #define LZ4_STREAMHCSIZE (4*LZ4HC_HASHTABLESIZE + 2*LZ4HC_MAXD + 56) 181 #define LZ4_STREAMHCSIZE_SIZET (LZ4_STREAMHCSIZE / sizeof(size_t)) 182 union LZ4_streamHC_u {
183 size_t table[LZ4_STREAMHCSIZE_SIZET];
184 LZ4HC_CCtx_internal internal_donotuse;
202 LZ4_DEPRECATED(
"use LZ4_compress_HC() instead") LZ4LIB_API
int LZ4_compressHC (const
char* source,
char* dest,
int inputSize);
203 LZ4_DEPRECATED("use LZ4_compress_HC() instead") LZ4LIB_API
int LZ4_compressHC_limitedOutput (const
char* source,
char* dest,
int inputSize,
int maxOutputSize);
204 LZ4_DEPRECATED("use LZ4_compress_HC() instead") LZ4LIB_API
int LZ4_compressHC2 (const
char* source,
char* dest,
int inputSize,
int compressionLevel);
205 LZ4_DEPRECATED("use LZ4_compress_HC() instead") LZ4LIB_API
int LZ4_compressHC2_limitedOutput (const
char* source,
char* dest,
int inputSize,
int maxOutputSize,
int compressionLevel);
206 LZ4_DEPRECATED("use LZ4_compress_HC_extStateHC() instead") LZ4LIB_API
int LZ4_compressHC_withStateHC (
void* state, const
char* source,
char* dest,
int inputSize);
207 LZ4_DEPRECATED("use LZ4_compress_HC_extStateHC() instead") LZ4LIB_API
int LZ4_compressHC_limitedOutput_withStateHC (
void* state, const
char* source,
char* dest,
int inputSize,
int maxOutputSize);
208 LZ4_DEPRECATED("use LZ4_compress_HC_extStateHC() instead") LZ4LIB_API
int LZ4_compressHC2_withStateHC (
void* state, const
char* source,
char* dest,
int inputSize,
int compressionLevel);
209 LZ4_DEPRECATED("use LZ4_compress_HC_extStateHC() instead") LZ4LIB_API
int LZ4_compressHC2_limitedOutput_withStateHC(
void* state, const
char* source,
char* dest,
int inputSize,
int maxOutputSize,
int compressionLevel);
210 LZ4_DEPRECATED("use LZ4_compress_HC_continue() instead") LZ4LIB_API
int LZ4_compressHC_continue (LZ4_streamHC_t* LZ4_streamHCPtr, const
char* source,
char* dest,
int inputSize);
211 LZ4_DEPRECATED("use LZ4_compress_HC_continue() instead") LZ4LIB_API
int LZ4_compressHC_limitedOutput_continue (LZ4_streamHC_t* LZ4_streamHCPtr, const
char* source,
char* dest,
int inputSize,
int maxOutputSize);
221 LZ4_DEPRECATED("use LZ4_createStreamHC() instead") LZ4LIB_API
void* LZ4_createHC (const
char* inputBuffer);
222 LZ4_DEPRECATED("use LZ4_saveDictHC() instead") LZ4LIB_API
char* LZ4_slideInputBufferHC (
void* LZ4HC_Data);
223 LZ4_DEPRECATED("use LZ4_freeStreamHC() instead") LZ4LIB_API
int LZ4_freeHC (
void* LZ4HC_Data);
224 LZ4_DEPRECATED("use LZ4_compress_HC_continue() instead") LZ4LIB_API
int LZ4_compressHC2_continue (
void* LZ4HC_Data, const
char* source,
char* dest,
int inputSize,
int compressionLevel);
225 LZ4_DEPRECATED("use LZ4_compress_HC_continue() instead") LZ4LIB_API
int LZ4_compressHC2_limitedOutput_continue (
void* LZ4HC_Data, const
char* source,
char* dest,
int inputSize,
int maxOutputSize,
int compressionLevel);
226 LZ4_DEPRECATED("use LZ4_createStreamHC() instead") LZ4LIB_API
int LZ4_sizeofStreamStateHC(
void);
227 LZ4_DEPRECATED("use LZ4_resetStreamHC() instead") LZ4LIB_API
int LZ4_resetStreamStateHC(
void* state,
char* inputBuffer);
230 #if defined (__cplusplus) 245 #ifdef LZ4_HC_STATIC_LINKING_ONLY 246 #ifndef LZ4_HC_SLO_098092834 247 #define LZ4_HC_SLO_098092834 257 int LZ4_compress_HC_destSize(
void* LZ4HC_Data,
258 const char* src,
char* dst,
259 int* srcSizePtr,
int targetDstSize,
260 int compressionLevel);
271 int LZ4_compress_HC_continue_destSize(LZ4_streamHC_t* LZ4_streamHCPtr,
272 const char* src,
char* dst,
273 int* srcSizePtr,
int targetDstSize);
278 void LZ4_setCompressionLevel(LZ4_streamHC_t* LZ4_streamHCPtr,
int compressionLevel);
284 void LZ4_favorDecompressionSpeed(LZ4_streamHC_t* LZ4_streamHCPtr,
int favor);
304 void LZ4_resetStreamHC_fast(LZ4_streamHC_t* LZ4_streamHCPtr,
int compressionLevel);
317 int LZ4_compress_HC_extStateHC_fastReset (
void* state,
const char* src,
char* dst,
int srcSize,
int dstCapacity,
int compressionLevel);
344 LZ4LIB_API
void LZ4_attach_HC_dictionary(LZ4_streamHC_t *working_stream,
const LZ4_streamHC_t *dictionary_stream);