lz4hc.h revision 84cedb4632ab87fbb108b4f7ed6e9ec164b6a4d4
1a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet./* 2a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. LZ4 HC - High Compression Mode of LZ4 3a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. Header File 445a357fd1704e9c6d2d8037277bda62e8c86308eYann Collet Copyright (C) 2011-2015, Yann Collet. 5a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) 6a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 7a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. Redistribution and use in source and binary forms, with or without 8a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. modification, are permitted provided that the following conditions are 9a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. met: 10a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 11a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. * Redistributions of source code must retain the above copyright 12a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. notice, this list of conditions and the following disclaimer. 13a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. * Redistributions in binary form must reproduce the above 14a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. copyright notice, this list of conditions and the following disclaimer 15a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. in the documentation and/or other materials provided with the 16a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. distribution. 17a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 18a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 30a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. You can contact the author at : 3184cedb4632ab87fbb108b4f7ed6e9ec164b6a4d4Przemyslaw Skibinski - LZ4 source repository : https://github.com/lz4/lz4 3245a357fd1704e9c6d2d8037277bda62e8c86308eYann Collet - LZ4 public forum : https://groups.google.com/forum/#!forum/lz4c 33a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet.*/ 3419e585cc462759427f8d125fca3278b8762b3099Yann Collet#ifndef LZ4_HC_H_19834876238432 3519e585cc462759427f8d125fca3278b8762b3099Yann Collet#define LZ4_HC_H_19834876238432 36a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 37a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 38a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet.#if defined (__cplusplus) 39a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet.extern "C" { 40a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet.#endif 41a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 4219e585cc462759427f8d125fca3278b8762b3099Yann Collet/*-*************************** 43be9d248851ecd712a8911526b009c5d0c948ee21Yann Collet* Includes 44be9d248851ecd712a8911526b009c5d0c948ee21Yann Collet*****************************/ 45be9d248851ecd712a8911526b009c5d0c948ee21Yann Collet#include <stddef.h> /* size_t */ 46be9d248851ecd712a8911526b009c5d0c948ee21Yann Collet 47012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou/*-*************************************************************** 48012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou* Export parameters 49012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou*****************************************************************/ 50012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou/*! 51012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou* LZ4_DLL_EXPORT : 52012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou* Enable exporting of functions when building a Windows DLL 53012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou*/ 54012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou#if defined(_WIN32) 55012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou# if defined(LZ4_DLL_EXPORT) && (LZ4_DLL_EXPORT==1) 5659771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei Sutou# define LZ4HCLIB_API __declspec(dllexport) 57012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou# else 5859771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei Sutou# define LZ4HCLIB_API __declspec(dllimport) 59012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou# endif 60012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou#else 6159771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei Sutou# define LZ4HCLIB_API 62012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou#endif 63012c66536cdb93d9bcfa565fadaaf2a281c489b9Kouhei Sutou 64a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 652cf32ef0f107d18c9779283b8bd1d56f0517dd39inikep#define LZ4HC_MIN_CLEVEL 3 662cf32ef0f107d18c9779283b8bd1d56f0517dd39inikep#define LZ4HC_DEFAULT_CLEVEL 9 672cf32ef0f107d18c9779283b8bd1d56f0517dd39inikep#define LZ4HC_MAX_CLEVEL 16 682cf32ef0f107d18c9779283b8bd1d56f0517dd39inikep 6919e585cc462759427f8d125fca3278b8762b3099Yann Collet/*-************************************ 70be9d248851ecd712a8911526b009c5d0c948ee21Yann Collet* Block Compression 71be9d248851ecd712a8911526b009c5d0c948ee21Yann Collet**************************************/ 7219e585cc462759427f8d125fca3278b8762b3099Yann Collet/*! 7319e585cc462759427f8d125fca3278b8762b3099Yann ColletLZ4_compress_HC() : 7419e585cc462759427f8d125fca3278b8762b3099Yann Collet Destination buffer `dst` must be already allocated. 7519e585cc462759427f8d125fca3278b8762b3099Yann Collet Compression success is guaranteed if `dst` buffer is sized to handle worst circumstances (data not compressible) 76e05088d0eb500d8d673e081929620e538df3d718Yann Collet Worst size evaluation is provided by function LZ4_compressBound() (see "lz4.h") 7719e585cc462759427f8d125fca3278b8762b3099Yann Collet `srcSize` : Max supported value is LZ4_MAX_INPUT_SIZE (see "lz4.h") 782cf32ef0f107d18c9779283b8bd1d56f0517dd39inikep `compressionLevel` : Recommended values are between 4 and 9, although any value between 0 and LZ4HC_MAX_CLEVEL will work. 7919e585cc462759427f8d125fca3278b8762b3099Yann Collet 0 means "use default value" (see lz4hc.c). 802cf32ef0f107d18c9779283b8bd1d56f0517dd39inikep Values >LZ4HC_MAX_CLEVEL behave the same as 16. 8119e585cc462759427f8d125fca3278b8762b3099Yann Collet @return : the number of bytes written into buffer 'dst' 8219e585cc462759427f8d125fca3278b8762b3099Yann Collet or 0 if compression fails. 83a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet.*/ 8459771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API int LZ4_compress_HC (const char* src, char* dst, int srcSize, int maxDstSize, int compressionLevel); 85a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 86a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 87a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet./* Note : 8819e585cc462759427f8d125fca3278b8762b3099Yann Collet Decompression functions are provided within "lz4.h" (BSD license) 89a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet.*/ 90a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 91a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 9219e585cc462759427f8d125fca3278b8762b3099Yann Collet/*! 93e05088d0eb500d8d673e081929620e538df3d718Yann ColletLZ4_compress_HC_extStateHC() : 94e05088d0eb500d8d673e081929620e538df3d718Yann Collet Use this function if you prefer to manually allocate memory for compression tables. 95e05088d0eb500d8d673e081929620e538df3d718Yann Collet To know how much memory must be allocated for the compression tables, use : 96e05088d0eb500d8d673e081929620e538df3d718Yann Collet int LZ4_sizeofStateHC(); 97a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 98e05088d0eb500d8d673e081929620e538df3d718Yann Collet Allocated memory must be aligned on 8-bytes boundaries (which a normal malloc() will do properly). 99a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 100e05088d0eb500d8d673e081929620e538df3d718Yann Collet The allocated memory can then be provided to the compression functions using 'void* state' parameter. 101e05088d0eb500d8d673e081929620e538df3d718Yann Collet LZ4_compress_HC_extStateHC() is equivalent to previously described function. 102e05088d0eb500d8d673e081929620e538df3d718Yann Collet It just uses externally allocated memory for stateHC. 103a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet.*/ 10459771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API int LZ4_compress_HC_extStateHC(void* state, const char* src, char* dst, int srcSize, int maxDstSize, int compressionLevel); 10559771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API int LZ4_sizeofStateHC(void); 106a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 107a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 10819e585cc462759427f8d125fca3278b8762b3099Yann Collet/*-************************************ 109be9d248851ecd712a8911526b009c5d0c948ee21Yann Collet* Streaming Compression 110d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet**************************************/ 111a357f434f06de70e5d670b8669becccb09f4c7a6Yann Collet#define LZ4_STREAMHCSIZE 262192 112a357f434f06de70e5d670b8669becccb09f4c7a6Yann Collet#define LZ4_STREAMHCSIZE_SIZET (LZ4_STREAMHCSIZE / sizeof(size_t)) 113a357f434f06de70e5d670b8669becccb09f4c7a6Yann Collettypedef struct { size_t table[LZ4_STREAMHCSIZE_SIZET]; } LZ4_streamHC_t; 114d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet/* 115e05088d0eb500d8d673e081929620e538df3d718Yann Collet LZ4_streamHC_t 116e05088d0eb500d8d673e081929620e538df3d718Yann Collet This structure allows static allocation of LZ4 HC streaming state. 117e05088d0eb500d8d673e081929620e538df3d718Yann Collet State must then be initialized using LZ4_resetStreamHC() before first use. 118d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet 119e05088d0eb500d8d673e081929620e538df3d718Yann Collet Static allocation should only be used in combination with static linking. 120e05088d0eb500d8d673e081929620e538df3d718Yann Collet If you want to use LZ4 as a DLL, please use construction functions below, which are future-proof. 121d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet*/ 122d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet 123b827ecf72894156c1727482b145dc9e7a116dbc9Yann Collet 1245540f4f93e32c925b581d8778f5636a23479b845Yann Collet/*! LZ4_createStreamHC() and LZ4_freeStreamHC() : 125e05088d0eb500d8d673e081929620e538df3d718Yann Collet These functions create and release memory for LZ4 HC streaming state. 126e05088d0eb500d8d673e081929620e538df3d718Yann Collet Newly created states are already initialized. 127e05088d0eb500d8d673e081929620e538df3d718Yann Collet Existing state space can be re-used anytime using LZ4_resetStreamHC(). 128e05088d0eb500d8d673e081929620e538df3d718Yann Collet If you use LZ4 as a DLL, use these functions instead of static structure allocation, 129e05088d0eb500d8d673e081929620e538df3d718Yann Collet to avoid size mismatch between different versions. 130d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet*/ 13159771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API LZ4_streamHC_t* LZ4_createStreamHC(void); 13259771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API int LZ4_freeStreamHC (LZ4_streamHC_t* streamHCPtr); 133d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet 13459771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API void LZ4_resetStreamHC (LZ4_streamHC_t* streamHCPtr, int compressionLevel); 13559771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API int LZ4_loadDictHC (LZ4_streamHC_t* streamHCPtr, const char* dictionary, int dictSize); 136d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet 13759771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API int LZ4_compress_HC_continue (LZ4_streamHC_t* streamHCPtr, const char* src, char* dst, int srcSize, int maxDstSize); 138d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet 13959771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API int LZ4_saveDictHC (LZ4_streamHC_t* streamHCPtr, char* safeBuffer, int maxDictSize); 140d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet 141d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet/* 142e05088d0eb500d8d673e081929620e538df3d718Yann Collet These functions compress data in successive blocks of any size, using previous blocks as dictionary. 143e05088d0eb500d8d673e081929620e538df3d718Yann Collet One key assumption is that previous blocks (up to 64 KB) remain read-accessible while compressing next blocks. 1445540f4f93e32c925b581d8778f5636a23479b845Yann Collet There is an exception for ring buffers, which can be smaller than 64 KB. 145e05088d0eb500d8d673e081929620e538df3d718Yann Collet Such case is automatically detected and correctly handled by LZ4_compress_HC_continue(). 146e05088d0eb500d8d673e081929620e538df3d718Yann Collet 147e05088d0eb500d8d673e081929620e538df3d718Yann Collet Before starting compression, state must be properly initialized, using LZ4_resetStreamHC(). 148e05088d0eb500d8d673e081929620e538df3d718Yann Collet A first "fictional block" can then be designated as initial dictionary, using LZ4_loadDictHC() (Optional). 149e05088d0eb500d8d673e081929620e538df3d718Yann Collet 150e05088d0eb500d8d673e081929620e538df3d718Yann Collet Then, use LZ4_compress_HC_continue() to compress each successive block. 151e05088d0eb500d8d673e081929620e538df3d718Yann Collet It works like LZ4_compress_HC(), but use previous memory blocks as dictionary to improve compression. 152e05088d0eb500d8d673e081929620e538df3d718Yann Collet Previous memory blocks (including initial dictionary when present) must remain accessible and unmodified during compression. 153e05088d0eb500d8d673e081929620e538df3d718Yann Collet As a reminder, size 'dst' buffer to handle worst cases, using LZ4_compressBound(), to ensure success of compression operation. 154e05088d0eb500d8d673e081929620e538df3d718Yann Collet 155e05088d0eb500d8d673e081929620e538df3d718Yann Collet If, for any reason, previous data blocks can't be preserved unmodified in memory during next compression block, 156e05088d0eb500d8d673e081929620e538df3d718Yann Collet you must save it to a safer memory space, using LZ4_saveDictHC(). 157e05088d0eb500d8d673e081929620e538df3d718Yann Collet Return value of LZ4_saveDictHC() is the size of dictionary effectively saved into 'safeBuffer'. 158d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet*/ 159d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet 160d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet 161d239a23337e5eba41f557b48eb26f0db81b28f26Yann Collet 16219e585cc462759427f8d125fca3278b8762b3099Yann Collet/*-************************************ 163e05088d0eb500d8d673e081929620e538df3d718Yann Collet* Deprecated Functions 164e05088d0eb500d8d673e081929620e538df3d718Yann Collet**************************************/ 1659443f3d9244faedb08527bf684994a0495117833Yann Collet/* Deprecate Warnings */ 1669443f3d9244faedb08527bf684994a0495117833Yann Collet/* Should these warnings messages be a problem, 1679443f3d9244faedb08527bf684994a0495117833Yann Collet it is generally possible to disable them, 1689443f3d9244faedb08527bf684994a0495117833Yann Collet with -Wno-deprecated-declarations for gcc 1699443f3d9244faedb08527bf684994a0495117833Yann Collet or _CRT_SECURE_NO_WARNINGS in Visual for example. 170ad86910b1b3633c2249a607bdbf2c138e8854f83Takayuki MATSUOKA You can also define LZ4_DEPRECATE_WARNING_DEFBLOCK. */ 171ad86910b1b3633c2249a607bdbf2c138e8854f83Takayuki MATSUOKA#ifndef LZ4_DEPRECATE_WARNING_DEFBLOCK 172ad86910b1b3633c2249a607bdbf2c138e8854f83Takayuki MATSUOKA# define LZ4_DEPRECATE_WARNING_DEFBLOCK 173d7298d2059a4f2da7aa19122d3af2aacb931972bTakayuki MATSUOKA# define LZ4_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) 174d7298d2059a4f2da7aa19122d3af2aacb931972bTakayuki MATSUOKA# if (LZ4_GCC_VERSION >= 405) || defined(__clang__) 175ad86910b1b3633c2249a607bdbf2c138e8854f83Takayuki MATSUOKA# define LZ4_DEPRECATED(message) __attribute__((deprecated(message))) 176d7298d2059a4f2da7aa19122d3af2aacb931972bTakayuki MATSUOKA# elif (LZ4_GCC_VERSION >= 301) 177ad86910b1b3633c2249a607bdbf2c138e8854f83Takayuki MATSUOKA# define LZ4_DEPRECATED(message) __attribute__((deprecated)) 1789443f3d9244faedb08527bf684994a0495117833Yann Collet# elif defined(_MSC_VER) 179ad86910b1b3633c2249a607bdbf2c138e8854f83Takayuki MATSUOKA# define LZ4_DEPRECATED(message) __declspec(deprecated(message)) 1809443f3d9244faedb08527bf684994a0495117833Yann Collet# else 181ad86910b1b3633c2249a607bdbf2c138e8854f83Takayuki MATSUOKA# pragma message("WARNING: You need to implement LZ4_DEPRECATED for this compiler") 1823d46d4b144223a69ab7e6ed327d426a7b5bdf10fTakayuki MATSUOKA# define LZ4_DEPRECATED(message) 1839443f3d9244faedb08527bf684994a0495117833Yann Collet# endif 18419e585cc462759427f8d125fca3278b8762b3099Yann Collet#endif /* LZ4_DEPRECATE_WARNING_DEFBLOCK */ 185be9d248851ecd712a8911526b009c5d0c948ee21Yann Collet 18619e585cc462759427f8d125fca3278b8762b3099Yann Collet/* deprecated compression functions */ 18719e585cc462759427f8d125fca3278b8762b3099Yann Collet/* these functions will trigger warning messages in future releases */ 18859771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API int LZ4_compressHC (const char* source, char* dest, int inputSize); 18959771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API int LZ4_compressHC_limitedOutput (const char* source, char* dest, int inputSize, int maxOutputSize); 19019e585cc462759427f8d125fca3278b8762b3099Yann ColletLZ4_DEPRECATED("use LZ4_compress_HC() instead") int LZ4_compressHC2 (const char* source, char* dest, int inputSize, int compressionLevel); 19119e585cc462759427f8d125fca3278b8762b3099Yann ColletLZ4_DEPRECATED("use LZ4_compress_HC() instead") int LZ4_compressHC2_limitedOutput (const char* source, char* dest, int inputSize, int maxOutputSize, int compressionLevel); 19259771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API int LZ4_compressHC_withStateHC (void* state, const char* source, char* dest, int inputSize); 19359771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API int LZ4_compressHC_limitedOutput_withStateHC (void* state, const char* source, char* dest, int inputSize, int maxOutputSize); 19419e585cc462759427f8d125fca3278b8762b3099Yann ColletLZ4_DEPRECATED("use LZ4_compress_HC_extStateHC() instead") int LZ4_compressHC2_withStateHC (void* state, const char* source, char* dest, int inputSize, int compressionLevel); 19519e585cc462759427f8d125fca3278b8762b3099Yann ColletLZ4_DEPRECATED("use LZ4_compress_HC_extStateHC() instead") int LZ4_compressHC2_limitedOutput_withStateHC(void* state, const char* source, char* dest, int inputSize, int maxOutputSize, int compressionLevel); 19659771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API int LZ4_compressHC_continue (LZ4_streamHC_t* LZ4_streamHCPtr, const char* source, char* dest, int inputSize); 19759771f41cdcb6be2a8fcb8a256b2511684baf956Kouhei SutouLZ4HCLIB_API int LZ4_compressHC_limitedOutput_continue (LZ4_streamHC_t* LZ4_streamHCPtr, const char* source, char* dest, int inputSize, int maxOutputSize); 198be9d248851ecd712a8911526b009c5d0c948ee21Yann Collet 19919e585cc462759427f8d125fca3278b8762b3099Yann Collet/* Deprecated Streaming functions using older model; should no longer be used */ 2001c3e633c48766c58df949887297dc5838170a33fYann ColletLZ4_DEPRECATED("use LZ4_createStreamHC() instead") void* LZ4_createHC (char* inputBuffer); 201ad86910b1b3633c2249a607bdbf2c138e8854f83Takayuki MATSUOKALZ4_DEPRECATED("use LZ4_saveDictHC() instead") char* LZ4_slideInputBufferHC (void* LZ4HC_Data); 202ad86910b1b3633c2249a607bdbf2c138e8854f83Takayuki MATSUOKALZ4_DEPRECATED("use LZ4_freeStreamHC() instead") int LZ4_freeHC (void* LZ4HC_Data); 203e05088d0eb500d8d673e081929620e538df3d718Yann ColletLZ4_DEPRECATED("use LZ4_compress_HC_continue() instead") int LZ4_compressHC2_continue (void* LZ4HC_Data, const char* source, char* dest, int inputSize, int compressionLevel); 204e05088d0eb500d8d673e081929620e538df3d718Yann ColletLZ4_DEPRECATED("use LZ4_compress_HC_continue() instead") int LZ4_compressHC2_limitedOutput_continue (void* LZ4HC_Data, const char* source, char* dest, int inputSize, int maxOutputSize, int compressionLevel); 205ad86910b1b3633c2249a607bdbf2c138e8854f83Takayuki MATSUOKALZ4_DEPRECATED("use LZ4_createStreamHC() instead") int LZ4_sizeofStreamStateHC(void); 2061c3e633c48766c58df949887297dc5838170a33fYann ColletLZ4_DEPRECATED("use LZ4_resetStreamHC() instead") int LZ4_resetStreamStateHC(void* state, char* inputBuffer); 207a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 208a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet. 209a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet.#if defined (__cplusplus) 210a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet.} 211a9d8640c1f3898cd47eb1faf22db013e8b9911dbyann.collet.#endif 21219e585cc462759427f8d125fca3278b8762b3099Yann Collet 21319e585cc462759427f8d125fca3278b8762b3099Yann Collet#endif /* LZ4_HC_H_19834876238432 */ 214