![]() |
ezEngine
Release 25.03
|
The LongOp controller is active in the editor process and manages which long ops are available, running, etc. More...
#include <LongOpControllerManager.h>
Classes | |
struct | ProxyOpInfo |
Holds all information about the proxy long op on the editor side. More... | |
Public Member Functions | |
void | RegisterLongOp (const ezUuid &documentGuid, const ezUuid &componentGuid, const char *szLongOpType) |
Typically called by ezLongOpsAdapter when a component that has an ezLongOpAttribute is added to a scene. | |
void | UnregisterLongOp (const ezUuid &documentGuid, const ezUuid &componentGuid, const char *szLongOpType) |
Typically called by ezLongOpsAdapter when a component that has an ezLongOpAttribute is removed from a scene. | |
void | StartOperation (ezUuid opGuid) |
Starts executing the given long op. Typically called by the ezQtLongOpsPanel. | |
void | CancelOperation (ezUuid opGuid) |
Cancels a given long op. Typically called by the ezQtLongOpsPanel. | |
void | CancelAndRemoveAllOpsForDocument (const ezUuid &documentGuid) |
Cancels and deletes all operations linked to the given document. Makes sure to wait for all canceled ops. Typically called by the ezLongOpsAdapter when a document is about to be closed. | |
ProxyOpInfo * | GetOperation (const ezUuid &opGuid) |
Returns a pointer to the given long op, or null if the GUID does not exist. | |
const ezDynamicArray< ezUniquePtr< ProxyOpInfo > > & | GetOperations () const |
Gives access to all currently available long ops. Make sure the lock m_Mutex (of the ezLongOpManager base class) while accessing this. | |
![]() | |
void | Startup (ezProcessCommunicationChannel *pCommunicationChannel) |
Needs to be called early to initialize the IPC channel to use. | |
void | Shutdown () |
Call this to shut down the IPC communication. | |
Public Attributes | |
ezEvent< const ezLongOpControllerEvent & > | m_Events |
Events about the state of all available long ops. | |
![]() | |
ezMutex | m_Mutex |
Publicly exposed mutex for some special cases. | |
Additional Inherited Members | |
![]() | |
ezProcessCommunicationChannel * | m_pCommunicationChannel = nullptr |
ezEvent< const ezProcessCommunicationChannel::Event & >::Unsubscriber | m_Unsubscriber |
The LongOp controller is active in the editor process and manages which long ops are available, running, etc.
All available long ops are registered with the controller, typically automatically by the ezLongOpsAdapter, although it is theoretically possible to register additional long ops.
Through the controller long ops can be started or canceled, which is exposed in the UI by the ezQtLongOpsPanel.
Through the broadcast ezLongOpControllerEvent, one can track the state of all long ops.