Plasma Engine  2.0
Loading...
Searching...
No Matches
LongOpManager.h
1#pragma once
2
3#include <EditorEngineProcessFramework/EditorEngineProcessFrameworkDLL.h>
4
5#include <EditorEngineProcessFramework/IPC/ProcessCommunicationChannel.h>
6#include <Foundation/Configuration/Singleton.h>
7#include <Foundation/Types/UniquePtr.h>
8#include <Foundation/Types/Uuid.h>
9
11class PL_EDITORENGINEPROCESSFRAMEWORK_DLL plLongOpManager
12{
13public:
15 void Startup(plProcessCommunicationChannel* pCommunicationChannel);
16
18 void Shutdown();
19
22
23protected:
24 virtual void ProcessCommunicationChannelEventHandler(const plProcessCommunicationChannel::Event& e) = 0;
25
26 plProcessCommunicationChannel* m_pCommunicationChannel = nullptr;
27 plEvent<const plProcessCommunicationChannel::Event&>::Unsubscriber m_Unsubscriber;
28};
Base class with shared functionality for plLongOpControllerManager and plLongOpWorkerManager.
Definition LongOpManager.h:12
plMutex m_Mutex
Publicly exposed mutex for some special cases.
Definition LongOpManager.h:21
Provides a simple mechanism for mutual exclusion to prevent multiple threads from accessing a shared ...
Definition Mutex.h:13
Definition ProcessCommunicationChannel.h:14
Definition ProcessCommunicationChannel.h:33