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