#pragma once
#include "Compressor.h"
#include <zlib.h>
namespace panda { namespace protocol { namespace http { namespace compression {
struct Gzip: Compressor {
Gzip() {}
~Gzip() override;
void prepare_uncompress(size_t& max_body_size) noexcept override;
void prepare_compress(Compression::Level level) noexcept override;
std::error_code uncompress(const string& piece, Body& body) noexcept override;
string compress(const string& piece) noexcept override;
string flush() noexcept override;
virtual void reset() noexcept override;
private:
z_stream stream;
};
}}}}