PocketLzma  1.0.0
A cross-platform singleheader LZMA compression/decompression library for C++11
Namespaces | Classes | Enumerations | Variables
plz Namespace Reference

Namespaces

 c
 

Classes

class  File
 
class  FileStatus
 
class  MemoryBuffer
 
class  MemoryStream
 
class  PocketLzma
 
class  Settings
 

Enumerations

enum  StatusCode {
  StatusCode::Ok = SZ_OK, StatusCode::ErrorData = SZ_ERROR_DATA, StatusCode::ErrorMem = SZ_ERROR_MEM, StatusCode::ErrorCrc = SZ_ERROR_CRC,
  StatusCode::ErrorUnsupported = SZ_ERROR_UNSUPPORTED, StatusCode::ErrorParam = SZ_ERROR_PARAM, StatusCode::ErrorInputEof = SZ_ERROR_INPUT_EOF, StatusCode::ErrorOutputEof = SZ_ERROR_OUTPUT_EOF,
  StatusCode::ErrorRead = SZ_ERROR_READ, StatusCode::ErrorWrite = SZ_ERROR_WRITE, StatusCode::ErrorProgress = SZ_ERROR_PROGRESS, StatusCode::ErrorFail = SZ_ERROR_FAIL,
  StatusCode::ErrorThread = SZ_ERROR_THREAD, StatusCode::ErrorArchive = SZ_ERROR_ARCHIVE, StatusCode::ErrorNoArchive = SZ_ERROR_NO_ARCHIVE, StatusCode::InvalidLzmaData = 100,
  StatusCode::UndefinedError = 999
}
 
enum  Preset : uint8_t {
  Preset::Default = 0, Preset::Fastest = 1, Preset::Fast = 2, Preset::GoodCompression = 3,
  Preset::BestCompression = 4
}
 

Variables

const uint8_t PLZ_MAX_LEVEL {9}
 
const uint32_t PLZ_MIN_DICTIONARY_SIZE {1 << 8}
 
const uint32_t PLZ_MAX_DICTIONARY_SIZE {1 << 30}
 
const uint8_t PLZ_MAX_LITERAL_CONTEXT_BITS {8}
 
const uint8_t PLZ_MAX_LITERAL_POSITION_BITS {4}
 
const uint8_t PLZ_MAX_POSITION_BITS {4}
 
const uint16_t PLZ_MIN_FAST_BYTES {5}
 
const uint16_t PLZ_MAX_FAST_BYTES {273}
 
const uint32_t PLZ_BUFFER_SIZE {1 << 16}
 
const uint8_t PLZ_MINIMUM_LZMA_SIZE {12}
 

Detailed Description

BSD 2-Clause License

Copyright (c) 2020, Robin Berg Pettersen All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

IMPORTANT - YOU MUST #define POCKETLZMA_LZMA_C_DEFINE exactly ONCE before the first time you include "pocketlzma.hpp" The reason for this is that the base logic used by PocketLzma is written i C (by Igor Pavlov), thus this is required to make sure the implementations are included only once. In other words: If pocketlzma.hpp is included several places, the #define must not be included anywhere but in one of them.

Example: #define POCKETLZMA_LZMA_C_DEFINE #include "pocketlzma.hpp"

Enumeration Type Documentation

◆ Preset

enum plz::Preset : uint8_t
strong
Enumerator
Default 
Fastest 
Fast 
GoodCompression 
BestCompression 

◆ StatusCode

enum plz::StatusCode
strong
Enumerator
Ok 
ErrorData 
ErrorMem 
ErrorCrc 
ErrorUnsupported 
ErrorParam 
ErrorInputEof 
ErrorOutputEof 
ErrorRead 
ErrorWrite 
ErrorProgress 
ErrorFail 
ErrorThread 
ErrorArchive 
ErrorNoArchive 
InvalidLzmaData 

When you attempt to decompress something that cannot be LZMA data

UndefinedError 

If you get this, you probably have attempted to decompress corrupted/garbage LZMA data

Variable Documentation

◆ PLZ_BUFFER_SIZE

const uint32_t plz::PLZ_BUFFER_SIZE {1 << 16}

◆ PLZ_MAX_DICTIONARY_SIZE

const uint32_t plz::PLZ_MAX_DICTIONARY_SIZE {1 << 30}

◆ PLZ_MAX_FAST_BYTES

const uint16_t plz::PLZ_MAX_FAST_BYTES {273}

◆ PLZ_MAX_LEVEL

const uint8_t plz::PLZ_MAX_LEVEL {9}

◆ PLZ_MAX_LITERAL_CONTEXT_BITS

const uint8_t plz::PLZ_MAX_LITERAL_CONTEXT_BITS {8}

◆ PLZ_MAX_LITERAL_POSITION_BITS

const uint8_t plz::PLZ_MAX_LITERAL_POSITION_BITS {4}

◆ PLZ_MAX_POSITION_BITS

const uint8_t plz::PLZ_MAX_POSITION_BITS {4}

◆ PLZ_MIN_DICTIONARY_SIZE

const uint32_t plz::PLZ_MIN_DICTIONARY_SIZE {1 << 8}

◆ PLZ_MIN_FAST_BYTES

const uint16_t plz::PLZ_MIN_FAST_BYTES {5}

◆ PLZ_MINIMUM_LZMA_SIZE

const uint8_t plz::PLZ_MINIMUM_LZMA_SIZE {12}