ezEngine  Release 25.03
ezLongOpControllerManager Class Referencefinal

The LongOp controller is active in the editor process and manages which long ops are available, running, etc. More...

#include <LongOpControllerManager.h>

Inheritance diagram for ezLongOpControllerManager:

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.
 
ProxyOpInfoGetOperation (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.
 
- Public Member Functions inherited from ezLongOpManager
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.
 
- Public Attributes inherited from ezLongOpManager
ezMutex m_Mutex
 Publicly exposed mutex for some special cases.
 

Additional Inherited Members

- Protected Attributes inherited from ezLongOpManager
ezProcessCommunicationChannelm_pCommunicationChannel = nullptr
 
ezEvent< const ezProcessCommunicationChannel::Event & >::Unsubscriber m_Unsubscriber
 

Detailed Description

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.


The documentation for this class was generated from the following files: