Ho derivato uno streambuf personalizzato per l'I/O del socket di rete bufferizzato, l'overflow di underflow, l'overflow e la sincronizzazione in modo che l'underflow sia reciprocamente sicuro con il set degli altri due (ho buffer interni di input e output separati) . Funziona bene, ma voglio usarlo per l'I/O full duplex in cui un thread può essere inserito mentre un altro è in uscita, quindi mi piacerebbe usare un istream per il thread ricevente e ostream per il mittente, mentre condivido la rete streambuf come quello che abstracts tutte le cose del socket. La mia domanda è: fino a che punto i membri dello streambuf interessati dalle operazioni di input su un istream sono disgiunti dai membri dello streambuf interessati dalle operazioni di output su un ostream se i buffer di input e output sono separati?istream e ostream con streambuf condiviso reciprocamente thread-safe per l'I/O duplex?
Sarebbe meglio essere in grado di farlo piuttosto che dover separare il socket dalla mia astrazione streambuf in modo che il socket possa essere condiviso tra istream e ostream con streambuf separati - quindi avrei anche bisogno di due versioni di lo streambuf - uno con un singolo buffer interno (da usare solo in istream o solo ostream), e uno con due buffer interni come ora, per l'uso in iostream ... fa schifo come se fossero classi aggiuntive e duplicazione del codice.
A prima vista ho avuto qualche dubbio, ma questa sembra la migliore domanda che ho visto qui da un po '. +1 – Potatoswatter