retdec
Public Member Functions | Private Member Functions | Private Attributes | List of all members
retdec::unpacker::LzmaData Class Reference

LZMA compressed data. More...

#include <lzma_data.h>

Inheritance diagram for retdec::unpacker::LzmaData:
Inheritance graph
[legend]
Collaboration diagram for retdec::unpacker::LzmaData:
Collaboration graph
[legend]

Public Member Functions

 LzmaData ()=delete
 
 LzmaData (const DynamicBuffer &buffer, uint8_t pb, uint8_t lp, uint8_t lc)
 
 LzmaData (const LzmaData &data)=delete
 
virtual bool decompress (DynamicBuffer &outputBuffer) override
 
- Public Member Functions inherited from retdec::unpacker::CompressedData
 CompressedData ()=delete
 
 CompressedData (const DynamicBuffer &buffer)
 Constructor. More...
 
 CompressedData (const CompressedData &data)
 Copy constructor. More...
 
virtual ~CompressedData ()=default
 
const DynamicBuffergetBuffer () const
 
void setBuffer (const DynamicBuffer &buffer)
 

Private Member Functions

LzmaDataoperator= (const LzmaData &)
 
bool checkProperties ()
 
bool decodeBit (uint32_t pos, uint32_t &bit)
 
bool decodeLiteral (uint32_t pos, uint8_t &returnByte, bool useRep, uint32_t rep)
 
void rotateRep (uint32_t rep[4], uint32_t amount)
 
bool decodeLen (uint32_t pos, uint32_t posState, uint32_t &len)
 
bool decodeBitTree (uint32_t pos, uint32_t rep, uint32_t add, uint32_t &ret)
 
bool decodeDirectBits (uint32_t count, uint32_t initValue, uint32_t &ret)
 
bool decodeRevBitTree (uint32_t pos, uint32_t rep, uint32_t &posSlot)
 

Private Attributes

uint32_t _readPos
 The position of reading from the input buffer. More...
 
uint8_t _pb
 
uint8_t _lp
 
uint8_t _lc
 Parameters of LZMA compression. More...
 
RangeDecoder _rangeDecoder
 Range decoder. More...
 

Additional Inherited Members

- Protected Attributes inherited from retdec::unpacker::CompressedData
DynamicBuffer _buffer
 Buffer containg the compressed data. More...
 

Detailed Description

LZMA compressed data.

Represents the LZMA compressed data with the option to decompress such data.

Constructor & Destructor Documentation

◆ LzmaData() [1/3]

retdec::unpacker::LzmaData::LzmaData ( )
delete

◆ LzmaData() [2/3]

retdec::unpacker::LzmaData::LzmaData ( const DynamicBuffer buffer,
uint8_t  pb,
uint8_t  lp,
uint8_t  lc 
)

Constructor.

Parameters
bufferThe LZMA compressed data.
pbProperty of LZMA.
lpProperty of LZMA.
lcProperty of LZMA.

◆ LzmaData() [3/3]

retdec::unpacker::LzmaData::LzmaData ( const LzmaData data)
delete

Member Function Documentation

◆ checkProperties()

bool retdec::unpacker::LzmaData::checkProperties ( )
private

◆ decodeBit()

bool retdec::unpacker::LzmaData::decodeBit ( uint32_t  pos,
uint32_t &  bit 
)
private

◆ decodeBitTree()

bool retdec::unpacker::LzmaData::decodeBitTree ( uint32_t  pos,
uint32_t  rep,
uint32_t  add,
uint32_t &  ret 
)
private

◆ decodeDirectBits()

bool retdec::unpacker::LzmaData::decodeDirectBits ( uint32_t  count,
uint32_t  initValue,
uint32_t &  ret 
)
private

◆ decodeLen()

bool retdec::unpacker::LzmaData::decodeLen ( uint32_t  pos,
uint32_t  posState,
uint32_t &  len 
)
private

◆ decodeLiteral()

bool retdec::unpacker::LzmaData::decodeLiteral ( uint32_t  pos,
uint8_t &  returnByte,
bool  useRep,
uint32_t  rep 
)
private

◆ decodeRevBitTree()

bool retdec::unpacker::LzmaData::decodeRevBitTree ( uint32_t  pos,
uint32_t  rep,
uint32_t &  posSlot 
)
private

◆ decompress()

bool retdec::unpacker::LzmaData::decompress ( DynamicBuffer outputBuffer)
overridevirtual

Decompresses the LZMA compressed data.

@ param outputBuffer The buffer in which the datas are decompressed.

Returns
True if the decompression was successful, otherwise false.

Implements retdec::unpacker::CompressedData.

◆ operator=()

LzmaData& retdec::unpacker::LzmaData::operator= ( const LzmaData )
private

◆ rotateRep()

void retdec::unpacker::LzmaData::rotateRep ( uint32_t  rep[4],
uint32_t  amount 
)
private

Member Data Documentation

◆ _lc

uint8_t retdec::unpacker::LzmaData::_lc
private

Parameters of LZMA compression.

◆ _lp

uint8_t retdec::unpacker::LzmaData::_lp
private

◆ _pb

uint8_t retdec::unpacker::LzmaData::_pb
private

◆ _rangeDecoder

RangeDecoder retdec::unpacker::LzmaData::_rangeDecoder
private

Range decoder.

◆ _readPos

uint32_t retdec::unpacker::LzmaData::_readPos
private

The position of reading from the input buffer.


The documentation for this class was generated from the following files: