1
0

LIN1Decompressor.hpp 858 B

123456789101112131415161718192021222324252627282930313233
  1. /* Copyright (C) Teemu Suutari */
  2. #ifndef LIN1DECOMPRESSOR_HPP
  3. #define LIN1DECOMPRESSOR_HPP
  4. #include "XPKDecompressor.hpp"
  5. namespace ancient::internal
  6. {
  7. class LIN1Decompressor : public XPKDecompressor
  8. {
  9. public:
  10. LIN1Decompressor(uint32_t hdr,uint32_t recursionLevel,const Buffer &packedData,std::shared_ptr<XPKDecompressor::State> &state,bool verify);
  11. virtual ~LIN1Decompressor();
  12. virtual const std::string &getSubName() const noexcept override final;
  13. virtual void decompressImpl(Buffer &rawData,const Buffer &previousData,bool verify) override final;
  14. static bool detectHeaderXPK(uint32_t hdr) noexcept;
  15. static std::shared_ptr<XPKDecompressor> create(uint32_t hdr,uint32_t recursionLevel,const Buffer &packedData,std::shared_ptr<XPKDecompressor::State> &state,bool verify);
  16. private:
  17. const Buffer &_packedData;
  18. uint32_t _ver=0;
  19. };
  20. }
  21. #endif