]>
Commit | Line | Data |
---|---|---|
b9c3bfeb | 1 | /* |
7c673cae FG |
2 | * Copyright (c) 2016-present, Yann Collet, Facebook, Inc. |
3 | * All rights reserved. | |
4 | * | |
b9c3bfeb TL |
5 | * This source code is licensed under both the BSD-style license (found in the |
6 | * LICENSE file in the root directory of this source tree) and the GPLv2 (found | |
7 | * in the COPYING file in the root directory of this source tree). | |
8 | * You may select, at your option, one of the above-listed licenses. | |
7c673cae FG |
9 | */ |
10 | ||
11 | #ifndef ZSTD_V02_H_4174539423 | |
12 | #define ZSTD_V02_H_4174539423 | |
13 | ||
14 | #if defined (__cplusplus) | |
15 | extern "C" { | |
16 | #endif | |
17 | ||
18 | /* ************************************* | |
19 | * Includes | |
20 | ***************************************/ | |
21 | #include <stddef.h> /* size_t */ | |
22 | ||
23 | ||
24 | /* ************************************* | |
25 | * Simple one-step function | |
26 | ***************************************/ | |
27 | /** | |
28 | ZSTDv02_decompress() : decompress ZSTD frames compliant with v0.2.x format | |
29 | compressedSize : is the exact source size | |
30 | maxOriginalSize : is the size of the 'dst' buffer, which must be already allocated. | |
31 | It must be equal or larger than originalSize, otherwise decompression will fail. | |
32 | return : the number of bytes decompressed into destination buffer (originalSize) | |
33 | or an errorCode if it fails (which can be tested using ZSTDv01_isError()) | |
34 | */ | |
35 | size_t ZSTDv02_decompress( void* dst, size_t maxOriginalSize, | |
36 | const void* src, size_t compressedSize); | |
37 | ||
b9c3bfeb TL |
38 | /** |
39 | ZSTDv02_getFrameSrcSize() : get the source length of a ZSTD frame compliant with v0.2.x format | |
40 | compressedSize : The size of the 'src' buffer, at least as large as the frame pointed to by 'src' | |
41 | return : the number of bytes that would be read to decompress this frame | |
42 | or an errorCode if it fails (which can be tested using ZSTDv02_isError()) | |
43 | */ | |
44 | size_t ZSTDv02_findFrameCompressedSize(const void* src, size_t compressedSize); | |
45 | ||
7c673cae FG |
46 | /** |
47 | ZSTDv02_isError() : tells if the result of ZSTDv02_decompress() is an error | |
48 | */ | |
49 | unsigned ZSTDv02_isError(size_t code); | |
50 | ||
51 | ||
52 | /* ************************************* | |
53 | * Advanced functions | |
54 | ***************************************/ | |
55 | typedef struct ZSTDv02_Dctx_s ZSTDv02_Dctx; | |
56 | ZSTDv02_Dctx* ZSTDv02_createDCtx(void); | |
57 | size_t ZSTDv02_freeDCtx(ZSTDv02_Dctx* dctx); | |
58 | ||
59 | size_t ZSTDv02_decompressDCtx(void* ctx, | |
60 | void* dst, size_t maxOriginalSize, | |
61 | const void* src, size_t compressedSize); | |
62 | ||
63 | /* ************************************* | |
64 | * Streaming functions | |
65 | ***************************************/ | |
66 | size_t ZSTDv02_resetDCtx(ZSTDv02_Dctx* dctx); | |
67 | ||
68 | size_t ZSTDv02_nextSrcSizeToDecompress(ZSTDv02_Dctx* dctx); | |
69 | size_t ZSTDv02_decompressContinue(ZSTDv02_Dctx* dctx, void* dst, size_t maxDstSize, const void* src, size_t srcSize); | |
70 | /** | |
71 | Use above functions alternatively. | |
72 | ZSTD_nextSrcSizeToDecompress() tells how much bytes to provide as 'srcSize' to ZSTD_decompressContinue(). | |
73 | ZSTD_decompressContinue() will use previous data blocks to improve compression if they are located prior to current block. | |
74 | Result is the number of bytes regenerated within 'dst'. | |
75 | It can be zero, which is not an error; it just means ZSTD_decompressContinue() has decoded some header. | |
76 | */ | |
77 | ||
78 | /* ************************************* | |
79 | * Prefix - version detection | |
80 | ***************************************/ | |
81 | #define ZSTDv02_magicNumber 0xFD2FB522 /* v0.2 */ | |
82 | ||
83 | ||
84 | #if defined (__cplusplus) | |
85 | } | |
86 | #endif | |
87 | ||
88 | #endif /* ZSTD_V02_H_4174539423 */ |