33 use_compression_ = use_compression;
36std::string RecordWriter::Compress(std::string
const& s)
const {
37 const unsigned long source_size = s.size();
38 const char* source = s.c_str();
40 unsigned long dsize = source_size + (source_size * 0.1f) + 16;
41 std::unique_ptr<char[]> destination(
new char[dsize]);
44 compress(
reinterpret_cast<unsigned char*
>(destination.get()), &dsize,
45 reinterpret_cast<const unsigned char*
>(source), source_size);
48 LOG(FATAL) <<
"Compress error occurred! Error code: " << result;
50 return std::string(destination.get(), dsize);
57void RecordReader::Uncompress(
const char*
const source, uint64_t source_size,
58 char*
const output_buffer,
59 uint64_t output_size)
const {
60 unsigned long result_size = output_size;
63 uncompress(
reinterpret_cast<unsigned char*
>(output_buffer), &result_size,
64 reinterpret_cast<const unsigned char*
>(source), source_size);
66 LOG(FATAL) <<
"Uncompress error occurred! Error code: " << result;
68 CHECK_LE(result_size,
static_cast<unsigned long>(output_size));