From 9513d59b275068b8376554561e67b7664cf96b6e Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Mon, 16 Oct 2006 23:17:02 +0000 Subject: Use overlapped I/O to avoid blocking. Use INVALID_HANDLE_VALUE instead of NULL everywhere to avoid bugs, and for type safety. (refs #3) --- lib/server/WinNamedPipeStream.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lib/server/WinNamedPipeStream.h') diff --git a/lib/server/WinNamedPipeStream.h b/lib/server/WinNamedPipeStream.h index 5a800371..aded2d59 100644 --- a/lib/server/WinNamedPipeStream.h +++ b/lib/server/WinNamedPipeStream.h @@ -36,13 +36,15 @@ public: virtual int Read(void *pBuffer, int NBytes, int Timeout = IOStream::TimeOutInfinite); virtual void Write(const void *pBuffer, int NBytes); + virtual void WriteAllBuffered(); virtual void Close(); virtual bool StreamDataLeft(); virtual bool StreamClosed(); bool IsConnected() { return mIsConnected; } + HANDLE GetSocketHandle() { return mSocketHandle; } + HANDLE GetReadableEvent() { return mReadableEvent; } protected: - HANDLE GetSocketHandle(); void MarkAsReadClosed() {mReadClosed = true;} void MarkAsWriteClosed() {mWriteClosed = true;} @@ -51,6 +53,10 @@ private: { /* do not call */ } HANDLE mSocketHandle; + HANDLE mReadableEvent; + OVERLAPPED mReadOverlap; + uint8_t mReadBuffer[4096]; + size_t mBytesInBuffer; bool mReadClosed; bool mWriteClosed; bool mIsServer; -- cgit v1.2.3