Перегрузка std::streambuf для экранирования данных
У меня есть внешняя библиотека, которая может записать кучу данных, передав ей std::ostream*
указатель. Пишет в двоичном формате
Я хочу записать эти данные в текстовый файл, который содержит другие вещи, преобразовав их в шестнадцатеричное или base64.
Поскольку данные, записываемые библиотекой lib, могут быть очень большими, я хочу избежать записи данных в буфер памяти, а затем преобразовывать их в текстовый формат. Я хотел бы конвертировать на лету.
Поэтому я ищу, как перегрузить std::streambuf для этой цели. Мне нужно перегрузить overflow
виртуальная функция, и я нашел необходимую информацию для этого.
Вопрос в том, стоит ли мне писать в файл ostream
или прямо к своему streambuf
который я могу использовать rdbuf()
? Разрешено ли писать прямо на stream
stringbuf
?
Заранее спасибо!