33 if (inflateInit2(&zs, 15 + 32) != Z_OK) {
37 zs.next_in = (Bytef*)str.data();
38 zs.avail_in = str.size();
45 zs.next_out =
reinterpret_cast<Bytef*
>(buffer);
46 zs.avail_out =
sizeof(buffer);
48 status = inflate(&zs, 0);
50 if (out->size() < zs.total_out) {
51 out->append(buffer, zs.total_out - out->size());
53 }
while (status == Z_OK);
57 if (status != Z_STREAM_END) {
58 VLOG(1) <<
"Exception during zlib decompression: (" << status <<
") "
67 std::string* compressed) {
76 if (deflateInit(&zs, Z_BEST_COMPRESSION) != Z_OK) {
77 VLOG(1) <<
"Cannot initialize zlib compression.";
81 zs.next_in = (Bytef*)uncompressed.data();
82 zs.avail_in = uncompressed.size();
89 zs.next_out =
reinterpret_cast<Bytef*
>(buffer);
90 zs.avail_out =
sizeof(buffer);
92 status = deflate(&zs, Z_FINISH);
94 if (compressed->size() < zs.total_out) {
95 compressed->append(buffer, zs.total_out - compressed->size());
97 }
while (status == Z_OK);
101 if (status != Z_STREAM_END) {
102 VLOG(1) <<
"Exception during zlib compression: (" << status <<
") "