Plasma Engine  2.0
Loading...
Searching...
No Matches
ProcessCommunicationChannel.h
1#pragma once
2
3#include <EditorEngineProcessFramework/EditorEngineProcessFrameworkDLL.h>
4#include <Foundation/Communication/Event.h>
5#include <Foundation/Time/Time.h>
6#include <Foundation/Types/Delegate.h>
7#include <Foundation/Types/UniquePtr.h>
8
9class plIpcChannel;
12
13class PL_EDITORENGINEPROCESSFRAMEWORK_DLL plProcessCommunicationChannel
14{
15public:
18
19 bool SendMessage(plProcessMessage* pMessage);
20
24 plResult WaitForMessage(const plRTTI* pMessageType, plTime timeout, WaitForMessageCallback* pMessageCallack = nullptr);
25 plResult WaitForConnection(plTime timeout);
26 bool IsConnected() const;
27
29 bool ProcessMessages();
30 void WaitForMessages();
31
32 struct Event
33 {
34 const plProcessMessage* m_pMessage;
35 };
36
37 plEvent<const Event&> m_Events;
38
39 void MessageFunc(const plProcessMessage* pMsg);
40
41protected:
44 const plRTTI* m_pFirstAllowedMessageType = nullptr;
45
46private:
47 WaitForMessageCallback m_WaitForMessageCallback;
48 const plRTTI* m_pWaitForMessageType = nullptr;
49};
Definition Event.h:177
Base class for a communication channel between processes.
Definition IpcChannel.h:44
A protocol around plIpcChannel to send reflected messages instead of byte array messages between clie...
Definition IpcProcessMessageProtocol.h:18
Definition ProcessCommunicationChannel.h:14
Base class for IPC messages transmitted by plIpcChannel.
Definition RemoteMessage.h:64
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
A Unique ptr manages an object and destroys that object when it goes out of scope....
Definition UniquePtr.h:10
Definition ProcessCommunicationChannel.h:33
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12