![]() |
XII Release 0.1.0
|
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 xiiUuid &documentGuid, const xiiUuid &componentGuid, xiiStringView sLongOpType) |
Typically called by xiiLongOpsAdapter when a component that has a xiiLongOpAttribute is added to a scene. | |
void | UnregisterLongOp (const xiiUuid &documentGuid, const xiiUuid &componentGuid, xiiStringView sLongOpType) |
Typically called by xiiLongOpsAdapter when a component that has a xiiLongOpAttribute is removed from a scene. | |
void | StartOperation (xiiUuid opGuid) |
Starts executing the given long op. Typically called by the xiiQtLongOpsPanel. | |
void | CancelOperation (xiiUuid opGuid) |
Cancels a given long op. Typically called by the xiiQtLongOpsPanel. | |
void | CancelAndRemoveAllOpsForDocument (const xiiUuid &documentGuid) |
Cancels and deletes all operations linked to the given document. Makes sure to wait for all canceled ops. Typically called by the xiiLongOpsAdapter when a document is about to be closed. | |
ProxyOpInfo * | GetOperation (const xiiUuid &opGuid) |
Returns a pointer to the given long op, or null if the GUID does not exist. | |
const xiiDynamicArray< xiiUniquePtr< ProxyOpInfo > > & | GetOperations () const |
Gives access to all currently available long ops. Make sure the lock m_Mutex (of the xiiLongOpManager base class) while accessing this. | |
![]() | |
void | Startup (xiiProcessCommunicationChannel *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 | |
xiiEvent< const xiiLongOpControllerEvent & > | m_Events |
Events about the state of all available long ops. | |
![]() | |
xiiMutex | m_Mutex |
Publicly exposed mutex for some special cases. | |
Additional Inherited Members | |
![]() | |
xiiProcessCommunicationChannel * | m_pCommunicationChannel = nullptr |
xiiEvent< constxiiProcessCommunicationChannel::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 xiiLongOpsAdapter, 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 xiiQtLongOpsPanel.
Through the broadcast xiiLongOpControllerEvent, one can track the state of all long ops.
|
overrideprivatevirtual |
Implements xiiLongOpManager.