5#ifdef POCKETLZMA_POCKETLZMA_H
7#ifndef TILESON_LZMA_HPP
8#define TILESON_LZMA_HPP
12 class Lzma :
public IDecompressor<std::vector<uint8_t>, std::vector<uint8_t>>
15 inline const std::string &name()
const override
20 inline std::vector<uint8_t> decompress(
const std::vector<uint8_t> &input)
override
22 std::vector<uint8_t> out;
25 plz::StatusCode status = p.decompress(input, out);
27 if(status != plz::StatusCode::Ok)
28 return std::vector<uint8_t>();
33 inline std::vector<uint8_t> decompressFile(
const fs::path &path)
override
35 std::vector<uint8_t> in;
36 std::vector<uint8_t> out;
39 plz::FileStatus fileStatus = plz::File::FromFile(path.generic_string(), in);
40 if(fileStatus.status() != plz::FileStatus::Code::Ok)
41 return std::vector<uint8_t>();
43 plz::StatusCode status = p.decompress(in, out);
45 if(status != plz::StatusCode::Ok)
46 return std::vector<uint8_t>();
51 inline std::vector<uint8_t> decompress(
const void *data,
size_t size)
override
53 std::vector<uint8_t> out;
56 plz::StatusCode status = p.decompress((uint8_t*) data, size, out);
58 if(status != plz::StatusCode::Ok)
59 return std::vector<uint8_t>();
65 inline static const std::string NAME {
"lzma"};