16#include <condition_variable>
58 void Send(
const void* bytes,
size_t length)
override;
Socket-based implementation of IPCChannel that uses intermediate buffer for data exchange between cli...
std::condition_variable mSendCondition
void Send(const void *bytes, size_t length) override
Thread-safe.
std::vector< char > mOutputBuffer
static constexpr int DefaultOutputBufferCapacity
static constexpr int DefaultInputBufferSize
~BufferedIPCChannel() override
Destroys channel and stops any data exchange.
std::unique_ptr< std::thread > mSendRoutine
std::unique_ptr< std::thread > mRecvRoutine
void StartConversation(SOCKET socket, IPCChannelStatusCallback &callback)
Allowed to be called only once during object lifetime. Takes ownership over a socket....
Interface for sending data from client to server or vice versa, complemented by IPCChannelStatusCallb...
Interface for listening connection status changes.