如何使用 boost::iostreams::gzip_decompressor 解压缩 boost::asio::streambuf 序列?
这是我的想法(非工作伪代码):
struct Foo {
public:
void sinkData(boost::asio::streambuf & buf) {
z.write(boost::asio::buffer_cast<const char*>(buf.data()), buf.size());
while(write());
}
void flush() {
z.flush();
while(write());
}
private:
bool write() {
char buf[1024];
size_t s = z.read(buf, 1024);
std::cout << std::string(buf, s) << std::endl;
return
}
gzip_decompressor z;
}
无法更改 sinkData 和 flush 函数。多次调用 sinkdata(),然后调用一次 flush()。
boost::iostreams::gzip_decompressor 是用于此目的的最佳库吗,如果是,该怎么做?否则,还能有什么建议?