3#include <Foundation/FoundationInternal.h>
4PL_FOUNDATION_INTERNAL_HEADER
6#if PL_ENABLED(PL_PLATFORM_WINDOWS_DESKTOP)
8# include <Foundation/Basics.h>
9# include <Foundation/Basics/Platform/Win/IncludeWindows.h>
10# include <Foundation/Communication/IpcChannel.h>
14 OVERLAPPED Overlapped;
18class PL_FOUNDATION_DLL plPipeChannel_win :
public plIpcChannel
21 plPipeChannel_win(
plStringView sAddress, Mode::Enum mode);
26 friend class plMessageLoop_win;
36 bool ProcessConnection();
37 bool ProcessIncomingMessages(DWORD uiBytesRead);
38 bool ProcessOutgoingMessages(DWORD uiBytesWritten);
42 void OnIOCompleted(IOContext* pContext, DWORD uiBytesTransfered, DWORD uiError);
47 explicit State(plPipeChannel_win* pChannel);
63 HANDLE m_hPipeHandle = INVALID_HANDLE_VALUE;
66 plUInt8 m_InputBuffer[BUFFER_SIZE];
Base class for a communication channel between processes.
Definition IpcChannel.h:44
virtual void InternalConnect()=0
Called on worker thread after Connect was called.
virtual void InternalDisconnect()=0
Called on worker thread after Disconnect was called.
virtual bool NeedWakeup() const =0
Called by Send to determine whether the message loop need to be woken up.
virtual void InternalSend()=0
Called on worker thread to sent pending messages.
Internal sub-system used by plIpcChannel.
Definition MessageLoop.h:20
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34