Добавить ограниченную возможность поиска в недоступный для поиска istream

У меня есть объект istream, который не доступен для поиска, т.е. если я вызову для него seekg(), то произойдет сбой (данные поступают из декомпрессора, который не позволяет искать в сжатых данных назад). Можно ли добавить поток-оболочку вокруг невидимого istream, который добавляет ограниченную возможность поиска? Например, что всегда будет хранить последние 8192 байта, которые были прочитаны в памяти, чтобы можно было искать по крайней мере так далеко в потоке? Если это возможно, то как?

Я просмотрел пару руководств о том, как добавить streambuf::seekoff() и streambuf::seekpos(), которые, я думаю, являются функциями, которые мне нужны для этого, но я не могу понять из документации.

Может ли кто-нибудь дать мне несколько советов?

Другими словами: этот вопрос для C++ то же самое, что этот вопрос для C#.


person josch    schedule 17.07.2015    source источник