PocketLzma  1.0.0
A cross-platform singleheader LZMA compression/decompression library for C++11
pocketlzma_common.hpp
Go to the documentation of this file.
1 //
2 // Created by robin on 29.12.2020.
3 //
4 
5 #ifndef POCKETLZMA_POCKETLZMA_COMMON_HPP
6 #define POCKETLZMA_POCKETLZMA_COMMON_HPP
7 #include <vector>
8 #include <cstdint>
9 #include <memory>
10 
11 #include <cstdio>
12 #include <cstdlib>
13 #include <string>
14 
15 namespace plz
16 {
17  const uint8_t PLZ_MAX_LEVEL {9};
18  const uint32_t PLZ_MIN_DICTIONARY_SIZE {1 << 8};
19  const uint32_t PLZ_MAX_DICTIONARY_SIZE {1 << 30};
20  const uint8_t PLZ_MAX_LITERAL_CONTEXT_BITS {8};
21  const uint8_t PLZ_MAX_LITERAL_POSITION_BITS {4};
22  const uint8_t PLZ_MAX_POSITION_BITS {4};
23  const uint16_t PLZ_MIN_FAST_BYTES {5};
24  const uint16_t PLZ_MAX_FAST_BYTES {273};
25 
26  const uint32_t PLZ_BUFFER_SIZE {1 << 16}; //65536 bytes
27  const uint8_t PLZ_MINIMUM_LZMA_SIZE {12};
28 
29  enum class StatusCode
30  {
31 
32  Ok = SZ_OK, //0
33  ErrorData = SZ_ERROR_DATA, //1
34  ErrorMem = SZ_ERROR_MEM, //2
35  ErrorCrc = SZ_ERROR_CRC, //3
36  ErrorUnsupported = SZ_ERROR_UNSUPPORTED, //4
37  ErrorParam = SZ_ERROR_PARAM, //5
38  ErrorInputEof = SZ_ERROR_INPUT_EOF, //6
39  ErrorOutputEof = SZ_ERROR_OUTPUT_EOF, //7
40  ErrorRead = SZ_ERROR_READ, //8
41  ErrorWrite = SZ_ERROR_WRITE, //9
42  ErrorProgress = SZ_ERROR_PROGRESS, //10
43  ErrorFail = SZ_ERROR_FAIL, //11
44  ErrorThread = SZ_ERROR_THREAD, //12
45  ErrorArchive = SZ_ERROR_ARCHIVE, //16
46  ErrorNoArchive = SZ_ERROR_NO_ARCHIVE, //17
47 
49  InvalidLzmaData = 100,
50 
52  UndefinedError = 999
53  };
54 
55  enum class Preset : uint8_t
56  {
57  Default = 0,
58  Fastest = 1,
59  Fast = 2,
60  GoodCompression = 3,
61  BestCompression = 4
62  };
63 }
64 #endif //POCKETLZMA_POCKETLZMA_COMMON_HPP
plz::Preset
Preset
Definition: pocketlzma_common.hpp:56
plz::StatusCode
StatusCode
Definition: pocketlzma_common.hpp:30
plz::PLZ_MAX_LEVEL
const uint8_t PLZ_MAX_LEVEL
Definition: pocketlzma_common.hpp:17
plz::StatusCode::Ok
@ Ok
plz::PLZ_MAX_LITERAL_CONTEXT_BITS
const uint8_t PLZ_MAX_LITERAL_CONTEXT_BITS
Definition: pocketlzma_common.hpp:20
plz::PLZ_MIN_FAST_BYTES
const uint16_t PLZ_MIN_FAST_BYTES
Definition: pocketlzma_common.hpp:23
plz::PLZ_BUFFER_SIZE
const uint32_t PLZ_BUFFER_SIZE
Definition: pocketlzma_common.hpp:26
plz::PLZ_MAX_LITERAL_POSITION_BITS
const uint8_t PLZ_MAX_LITERAL_POSITION_BITS
Definition: pocketlzma_common.hpp:21
plz::PLZ_MAX_DICTIONARY_SIZE
const uint32_t PLZ_MAX_DICTIONARY_SIZE
Definition: pocketlzma_common.hpp:19
plz::Preset::Default
@ Default
plz::PLZ_MAX_POSITION_BITS
const uint8_t PLZ_MAX_POSITION_BITS
Definition: pocketlzma_common.hpp:22
plz::PLZ_MINIMUM_LZMA_SIZE
const uint8_t PLZ_MINIMUM_LZMA_SIZE
Definition: pocketlzma_common.hpp:27
plz::PLZ_MAX_FAST_BYTES
const uint16_t PLZ_MAX_FAST_BYTES
Definition: pocketlzma_common.hpp:24
plz::PLZ_MIN_DICTIONARY_SIZE
const uint32_t PLZ_MIN_DICTIONARY_SIZE
Definition: pocketlzma_common.hpp:18
plz
Definition: File.hpp:11