32 if (inflateInit2(&zs, 15 + 32) != Z_OK) {
36 zs.next_in = (Bytef*)str.data();
37 zs.avail_in = str.size();
44 zs.next_out =
reinterpret_cast<Bytef*
>(buffer);
45 zs.avail_out =
sizeof(buffer);
47 status = inflate(&zs, 0);
49 if (out->size() < zs.total_out) {
50 out->append(buffer, zs.total_out - out->size());
52 }
while (status == Z_OK);
56 if (status != Z_STREAM_END) {
57 VLOG(1) <<
"Exception during zlib decompression: (" << status <<
") "
66 std::string* compressed) {
75 if (deflateInit(&zs, Z_BEST_COMPRESSION) != Z_OK) {
76 VLOG(1) <<
"Cannot initialize zlib compression.";
80 zs.next_in = (Bytef*)uncompressed.data();
81 zs.avail_in = uncompressed.size();
88 zs.next_out =
reinterpret_cast<Bytef*
>(buffer);
89 zs.avail_out =
sizeof(buffer);
91 status = deflate(&zs, Z_FINISH);
93 if (compressed->size() < zs.total_out) {
94 compressed->append(buffer, zs.total_out - compressed->size());
96 }
while (status == Z_OK);
100 if (status != Z_STREAM_END) {
101 VLOG(1) <<
"Exception during zlib compression: (" << status <<
") "