Kicking it Olde Sküül! Burgerlib on Github Follow Olde Sküül on Twitter Burgerbecky on LinkedIn Burgerbecky on LinkedIn
Loading...
Searching...
No Matches
Burger::DecompressLZSS Class Reference

Decompress LZSS format. More...

Inheritance diagram for Burger::DecompressLZSS:
Collaboration diagram for Burger::DecompressLZSS:

Public Member Functions

const Burger::StaticRTTIget_StaticRTTI (void) const noexcept override
 Get the description to the class.
 
 DecompressLZSS ()
 Default constructor.
 
eError Reset (void) override
 Reset the LZSS decompression.
 
eError Process (void *pOutput, uintptr_t uOutputChunkLength, const void *pInput, uintptr_t uInputChunkLength) override
 Decompress data using LZSS compression.
 
- Public Member Functions inherited from Burger::Decompress
 Decompress (void)
 Default constructor.
 
uintptr_t GetTotalInputSize (void) const noexcept
 Get the total processed input data in bytes.
 
uintptr_t GetTotalOutputSize (void) const noexcept
 Get the total processed output data in bytes.
 
uintptr_t GetProcessedInputSize (void) const noexcept
 Get the total processed output data in bytes from the last process pass.
 
uintptr_t GetProcessedOutputSize (void) const noexcept
 Get the total processed output data in bytes from the last process pass.
 
uint32_t GetSignature (void) const noexcept
 Return the signature for this decompressor.
 
- Public Member Functions inherited from Burger::Base
const char * get_class_name (void) const noexcept
 Get the name of the class.
 
virtual ~Base () noexcept=default
 Destructor.
 

Static Public Attributes

static const Burger::StaticRTTI g_StaticRTTI
 The global description of the class.
 
static const uint32_t Signature = 0x4C5A5353
 'LZSS'
 
- Static Public Attributes inherited from Burger::Decompress
static const Burger::StaticRTTI g_StaticRTTI
 The global description of the class.
 
- Static Public Attributes inherited from Burger::Base
static const Burger::StaticRTTI g_StaticRTTI
 The global description of the class.
 

Protected Types

enum  eState { STATE_INIT , STATE_16BIT2 , STATE_RUN }
 

Protected Attributes

uintptr_t m_uRunCount
 Previous 16 bit token (Half)
 
uintptr_t m_uOffset
 Previous destination pointer.
 
uint_t m_uBitBucket
 Previous bit bucket.
 
eState m_eState
 State of the decompression.
 
- Protected Attributes inherited from Burger::Decompress
uintptr_t m_uTotalInput
 Total number of bytes processed for input.
 
uintptr_t m_uTotalOutput
 Total number of bytes processed for output.
 
uintptr_t m_uInputLength
 Number of input bytes processed from the last call to Process()
 
uintptr_t m_uOutputLength
 Number of output bytes processed from the last call to Process()
 
uint32_t m_uSignature
 4 character code to identify this decompresser
 

Detailed Description

Decompress LZSS format.


Decompress data in LZSS format (Documented here Burger::CompressLZSS )

See also
Burger::Decompress and Burger::CompressLZSS

Member Enumeration Documentation

◆ eState

Enumerator
STATE_INIT 

Start of a compression token

STATE_16BIT2 

Grab the 2nd half of a 16 bit run token.

STATE_RUN 

Memory copy in progress.

Constructor & Destructor Documentation

◆ DecompressLZSS()

Burger::DecompressLZSS::DecompressLZSS ( )

Default constructor.


Initializes the defaults

Member Function Documentation

◆ get_StaticRTTI()

const Burger::StaticRTTI * Burger::DecompressLZSS::get_StaticRTTI ( void ) const
overridevirtualnoexcept

Get the description to the class.


This virtual function will pull the pointer to the StaticRTTI instance that has the name of the class. Due to it being virtual, it will be the name of the most derived class.

Returns
Pointer to a global, read only instance of StaticRTTI for the true class

Reimplemented from Burger::Decompress.

◆ Process()

Burger::eError Burger::DecompressLZSS::Process ( void * pOutput,
uintptr_t uOutputChunkLength,
const void * pInput,
uintptr_t uInputChunkLength )
overridevirtual

Decompress data using LZSS compression.


Using the LZSS compression algorithm, decompress the data

Parameters
pOutputPointer to the buffer to accept the decompressed data
uOutputChunkLengthNumber of bytes in the output buffer
pInputPointer to data to compress
uInputChunkLengthNumber of bytes in the data to decompress
Returns
Decompress::eError code with zero if no failure, non-zero is an error code
See also
Burger::SimpleDecompressLZSS()

Implements Burger::Decompress.

◆ Reset()

Burger::eError Burger::DecompressLZSS::Reset ( void )
overridevirtual

Reset the LZSS decompression.


Returns
kErrorNone (No error is possible)

Implements Burger::Decompress.

Member Data Documentation

◆ g_StaticRTTI

const Burger::StaticRTTI Burger::DecompressLZSS::g_StaticRTTI
static

The global description of the class.


This record contains the name of this class and a reference to the parent

◆ m_eState

eState Burger::DecompressLZSS::m_eState
protected

State of the decompression.

◆ m_uBitBucket

uint_t Burger::DecompressLZSS::m_uBitBucket
protected

Previous bit bucket.

◆ m_uOffset

uintptr_t Burger::DecompressLZSS::m_uOffset
protected

Previous destination pointer.

◆ m_uRunCount

uintptr_t Burger::DecompressLZSS::m_uRunCount
protected

Previous 16 bit token (Half)

◆ Signature

const uint32_t Burger::DecompressLZSS::Signature = 0x4C5A5353
static

'LZSS'