Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
lz4hc.h
Go to the documentation of this file.
1 /*
2  LZ4 HC - High Compression Mode of LZ4
3  Header File
4  Copyright (C) 2011-2013, Yann Collet.
5  BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
6 
7  Redistribution and use in source and binary forms, with or without
8  modification, are permitted provided that the following conditions are
9  met:
10 
11  * Redistributions of source code must retain the above copyright
12  notice, this list of conditions and the following disclaimer.
13  * Redistributions in binary form must reproduce the above
14  copyright notice, this list of conditions and the following disclaimer
15  in the documentation and/or other materials provided with the
16  distribution.
17 
18  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 
30  You can contact the author at :
31  - LZ4 homepage : http://fastcompression.blogspot.com/p/lz4.html
32  - LZ4 source repository : http://code.google.com/p/lz4/
33 */
34 #pragma once
35 
36 #include "../coreconfig.h"
37 
38 #ifdef LZ4_FUNC
39  #define LZ4_compressHC LZ4_FUNC(LZ4_compressHC)
40  #define LZ4_compressHC_limitedOutput LZ4_FUNC(LZ4_compressHC_limitedOutput)
41  #define LZ4HC_Data_Structure LZ4_FUNC(LZ4HC_Data_Structure)
42 #endif
43 
44 #if defined (__cplusplus)
45 extern "C" {
46 #endif
47 
48 
49 CORE_EXPORT( int ) LZ4_compressHC (const char* source, char* dest, int inputSize);
50 
51 /*
52 LZ4_compressHC :
53  return : the number of bytes in compressed buffer dest
54  note : destination buffer must be already allocated.
55  To avoid any problem, size it to handle worst cases situations (input data not compressible)
56  Worst case size evaluation is provided by function LZ4_compressBound() (see "lz4.h")
57 */
58 
59 CORE_EXPORT( int ) LZ4_compressHC_limitedOutput (const char* source, char* dest, int inputSize, int maxOutputSize);
60 
61 /*
62 LZ4_compress_limitedOutput() :
63  Compress 'inputSize' bytes from 'source' into an output buffer 'dest' of maximum size 'maxOutputSize'.
64  If it cannot achieve it, compression will stop, and result of the function will be zero.
65  This function never writes outside of provided output buffer.
66 
67  inputSize : Max supported value is ~1.9GB
68  maxOutputSize : is maximum allowed size into the destination buffer (which must be already allocated)
69  return : the number of output bytes written in buffer 'dest'
70  or 0 if the compression fails
71 */
72 
73 
74 /* Note :
75 Decompression functions are provided within regular LZ4 source code (see "lz4.h") (BSD license)
76 */
77 
78 
79 #if defined (__cplusplus)
80 }
81 #endif
CORE_EXPORT(int) LZ4_compressHC(const char *source
char int int maxOutputSize
Definition: lz4hc.h:59
char int inputSize
Definition: lz4hc.h:49
char * dest
Definition: lz4hc.h:49