Может ли boost iostreams читать и сжимать gzipped файлы на лету?

Я читаю gzip-файл, используя boost iostreams:

 namespace io = boost::iostreams;
  io::filtering_istream in;
  in.push(boost::iostreams::basic_gzip_decompressor<>());
  in.push(io::file_source("test.gz"));
  stringstream ss;
  copy(in, ss);

Однако я не хочу тратить память на чтение всего gzip-файла. в память. Я хочу иметь возможность читать файл инкрементально.

Например, если у меня есть структура данных X, которая инициализируется из istream,

X x;
x.read(in);

ничего не получится. Предположительно, это происходит потому, что нам, возможно, придется возвращать символы в поток. если мы делаем частичные потоки. Есть идеи, поддерживает ли boost iostreams это?

6
задан ATemp 28 February 2012 в 19:38
поделиться