1
0
This repository has been archived on 2024-09-10. You can view files and clone it, but cannot push or open issues or pull requests.
levedb-mcpe-legacy/db/zopfli_compressor.cc

35 lines
833 B
C++

#ifdef ZOPFLI
#include "leveldb/zopfli_compressor.h"
#include "leveldb/zlib_compressor.h"
#include <zlib.h>
#include <zopfli/zopfli.h>
#include <algorithm>
namespace leveldb {
void ZopfliCompressor::compressImpl(const char* input, size_t length, ::std::string& output) const
{
//extend the buffer to the worst case
auto originalSize = output.size();
ZopfliOptions options;
ZopfliInitOptions(&options);
size_t outsize = 0;
auto buffer = (char*)nullptr;
ZopfliCompress(&options, ZOPFLI_FORMAT_ZLIB, (uint8_t*)input, length, (uint8_t**)&buffer, &outsize);
assert(outsize > 0);
output.append(buffer, outsize);
free(buffer);
}
bool ZopfliCompressor::decompress(const char* input, size_t length, ::std::string &output) const {
return ZlibCompressor::inflate(input, length, output) == Z_OK;
}
}
#endif