Я работаю над basic_streambuf
для обработки чтения и записи из / в сокет Winsock.Как и basic_filebuf
, я внутренне использую объект std::codecvt
для преобразования байтов, считываемых из базового сокета, в тип char "socket Streambuf", а также для преобразования символов, записанных в сокет streambuf, в байты, которые можно записатьв основной сокет.Чтобы сделать это, я обнаружил, что мне нужно поддерживать буферы для функций чтения и записи streambuf. * 1004 *
Логическая проблема, с которой я сталкиваюсь, заключается в том, что реализация streambuf предназначена для использования дляи чтение и запись (конструктор std::iostream
принимает один указатель на streambuf), но есть только одна переопределяемая функция-член, которую можно настроить для установки нижележащего буфера символов: setbuf
.Если я хочу разрешить пользователям моего шаблона сокета streambuf устанавливать базовый буфер, должен ли setbuf
установить буфер чтения или запись?Какой вариант имеет больше смысла?