retdec
lzmat_data.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_UNPACKER_DECOMPRESSION_LZMAT_LZMAT_DATA_H
8 #define RETDEC_UNPACKER_DECOMPRESSION_LZMAT_LZMAT_DATA_H
9 
10 #include <cstdint>
11 #include <vector>
12 
14 
15 namespace retdec {
16 namespace unpacker {
17 
18 class LzmatData : public CompressedData
19 {
20 public:
21  LzmatData() = delete;
22  LzmatData(const DynamicBuffer& buffer);
23  LzmatData(const LzmatData&) = delete;
24 
25  virtual bool decompress(DynamicBuffer& outputBuffer) override;
26 
27 private:
29 
30  uint8_t get4Bits(uint32_t& pos, bool& unaligned);
31  uint8_t get8Bits(uint32_t pos, bool unaligned);
32  uint16_t get12Bits(uint32_t pos, bool unaligned);
33  uint16_t get16Bits(uint32_t pos, bool unaligned);
34 };
35 
36 } // namespace unpacker
37 } // namespace retdec
38 
39 #endif
Abstract class for compressed data.
Definition: compressed_data.h:26
Definition: lzmat_data.h:19
virtual bool decompress(DynamicBuffer &outputBuffer) override
Definition: lzmat_data.cpp:16
uint8_t get4Bits(uint32_t &pos, bool &unaligned)
Definition: lzmat_data.cpp:150
LzmatData & operator=(const LzmatData &)
uint16_t get16Bits(uint32_t pos, bool unaligned)
Definition: lzmat_data.cpp:185
uint8_t get8Bits(uint32_t pos, bool unaligned)
Definition: lzmat_data.cpp:167
uint16_t get12Bits(uint32_t pos, bool unaligned)
Definition: lzmat_data.cpp:176
LzmatData(const LzmatData &)=delete
The class for dynamic buffered data manipulation taking the endianness of the data in account.
Definition: dynamic_buffer.h:36
Declaration of class for abstract compressed data.
Definition: archive_wrapper.h:19
Supportive functionality for the generic unpacker.