istream и ostream с общим streambuf взаимно безопасны для потоков для дуплексного ввода-вывода?

] Я получил собственный streambuf для буферизованного ввода-вывода сетевого сокета, переопределяющий недополнение, переполнение и синхронизацию, чтобы недозаполнение было взаимно потокобезопасным с набором двух других (у меня есть отдельные входные и выходные внутренние буферы). Это работает нормально, но я хочу использовать это для полнодуплексного ввода-вывода, когда один поток может вводить, а другой выводит, поэтому я хотел бы использовать istream для принимающего потока и ostream для отправляющего при совместном использовании сети streambuf, так как это абстрагирует весь материал сокета.Мой вопрос заключается в том, в какой степени члены streambuf затронуты операциями ввода в istream, непересекающемся с элементами streambuf, затронутыми операциями вывода в ostream, если буферы ввода и вывода разделены?

Было бы лучше уметь делать эту крысу ей, чем отделить материал сокета от моей абстракции streambuf, чтобы сокет мог быть разделен между istream и ostream с отдельными streambuf - тогда мне также понадобятся две версии streambuf - одна с одним внутренним буфером (для использования в либо только istream, либо только ostream), и один с двумя внутренними буферами, как у меня сейчас, для использования в iostream... отстой, так как это дополнительные классы и дублирование кода.

7
задан Display Name 1 April 2012 в 09:47
поделиться