Я пытаюсь использовать std :: istream в качестве источника данных. Я хочу разместить пользовательских двоичных данных в потоковом буфере istream, чтобы впоследствии их можно было извлечь из istream.
Я читал о boost :: asio :: streambuf и о том, как он используется для выполнения именно того, что я хочу, но с использованием сокета в качестве источника данных вместо буфера в памяти, что я и хотел бы использовать.
Из того, что я понимаю из документации , шаги должны быть:
- Создать буст :: asio :: streambuf
- Создайте std :: istream, передавая streambuf
- Invoke boost :: asio :: streambuf :: prepare, чтобы получить список буферов, представляющих выходную последовательность.
- Как-то записать в выходную последовательность.
- Вызвать boost :: asio :: streambuf :: commit, чтобы переместить то, что я написал в выходной последовательности, во входную последовательность.
- Обычно читает из std :: istream из шага 2 с помощью std :: stream :: read.
Я не знаю, как выполнить шаг 4, поэтому я не знаю, даже если я иду в правильном направлении.
Правильно ли изображены шаги? Если да, то как обратиться к шагу 4?