ARTMDecompressor.hpp 839 B

12345678910111213141516171819202122232425262728293031
  1. /* Copyright (C) Teemu Suutari */
  2. #ifndef ARTMDECOMPRESSOR_HPP
  3. #define ARTMDECOMPRESSOR_HPP
  4. #include "XPKDecompressor.hpp"
  5. namespace ancient::internal
  6. {
  7. class ARTMDecompressor : public XPKDecompressor
  8. {
  9. public:
  10. ARTMDecompressor(uint32_t hdr,uint32_t recursionLevel,const Buffer &packedData,std::shared_ptr<XPKDecompressor::State> &state,bool verify);
  11. virtual ~ARTMDecompressor();
  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. };
  19. }
  20. #endif