#include #include #include namespace fc { std::vector lzma_compress(const std::vector& in) { FC_ASSERT(!in.empty()); const unsigned char* in_data = reinterpret_cast (&in[0]);; unsigned char* out_data; size_t out_len = 0; int ret = simpleCompress(elzma_file_format::ELZMA_lzma, in_data, in.size(), &out_data, &out_len); if(ret != 0) { FC_ASSERT(0); return std::vector(); } std::vector out(out_data, out_data+out_len); return out; } std::vector lzma_decompress( const std::vector& compressed ) { FC_ASSERT(!compressed.empty()); const unsigned char* in_data = reinterpret_cast (&compressed[0]);; unsigned char* out_data; size_t out_len = 0; int ret = simpleDecompress(elzma_file_format::ELZMA_lzma, in_data, compressed.size(), &out_data, &out_len); if(ret != 0) { FC_ASSERT(0); return std::vector(); } std::vector out(out_data, out_data+out_len); return out; } } // namespace fc