Сбрасывание повышения:: iostreams:: zlib_compressor. Как получить “синхронизирующий сброс”?

Есть ли некоторое волшебство, требуемое получить "zlib синхронизирующий сброс" при использовании boost::iostreams::zlib_compressor ? Просто вызов flush на фильтре, или strict_sync на a filtering_ostream содержание его не видит, чтобы сделать задание (т.е. я хочу, чтобы компрессор сбросил достаточно, что декомпрессор может восстановить все байты, использованные компрессором до сих пор, не закрывая поток).

При рассмотрении заголовка там, кажись, быть некоторыми "кодами сброса", определенными (особенно a sync_flush) но неясно мне, как они должны использоваться (мысль, что мой компрессор просто добавляется в a filtering_ostream).

5
задан timday 18 March 2010 в 09:51
поделиться

1 ответ

Оказывается, существует фундаментальная проблема, заключающаяся в том, что симметричный_фильтр , который наследуется от zlib_compressor , сам по себе не может быть удален (что кажется скорее надзор).

Возможно, добавить такую ​​поддержку в simric_filter будет так же просто, как добавить flushable_tag и раскрыть существующие методы приватного сброса, но пока я могу жить с этим.

2
ответ дан 15 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: