如何直接使用boost :: iostreams过滤器

时间:2011-11-14 16:57:08

标签: c++ boost boost-iostreams

如何使用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是用于此目的的最佳库,如果是这样的话怎么办?否则,还有什么建议?

0 个答案:

没有答案