ezEngine  Release 25.03
ezLongOpWorker Class Referenceabstract

Worker long ops are executed by the editor engine process. More...

#include <LongOps.h>

Inheritance diagram for ezLongOpWorker:

Public Member Functions

virtual ezResult InitializeExecution (ezStreamReader &ref_config, const ezUuid &documentGuid)
 Called within the engine processes main thread. The function may lock the ezWorld from the given scene document and extract vital information. It should try to be as quick as possible and leave the heavy lifting to Execute(), which will run on a background thread. If this function return failure, the long op is canceled right away.
 
virtual ezResult Execute (ezProgress &ref_progress, ezStreamWriter &ref_proxydata)=0
 Executed in a separete thread after InitializeExecution(). This should do the work that takes a while. More...
 
- Public Member Functions inherited from ezReflectedClass
virtual const ezRTTIGetDynamicRTTI () const
 
bool IsInstanceOf (const ezRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T >
EZ_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 

Additional Inherited Members

- Static Public Member Functions inherited from ezNoBase
static const ezRTTIGetStaticRTTI ()
 

Detailed Description

Worker long ops are executed by the editor engine process.

They typically do the actual long processing. Since they run in the engine process, they have access to the runtime scene graph and resources but not the editor representation of the scene.

ezLongOpWorker instances are automatically instantiated by ezLongOpWorkerManager when they have been named by a ezLongOpProxy's GetReplicationInfo() function.

Member Function Documentation

◆ Execute()

virtual ezResult ezLongOpWorker::Execute ( ezProgress ref_progress,
ezStreamWriter ref_proxydata 
)
pure virtual

Executed in a separete thread after InitializeExecution(). This should do the work that takes a while.

This function may write the result data directly to disk. Everything that is written to proxydata will be transmitted back to the proxy long op and given to ezLongOpProxy::Finalize(). Since this requires IPC bandwidth the amount of data should be kept very small (a few KB at most).

All updates to progress will be automatically synchronized back to the editor process and become visible through the ezLongOpControllerManager via the ezLongOpControllerEvent. Use ezProgressRange for convenient progress updates.

Implemented in ezLongOpWorker_BuildNavMesh, and ezLongOpWorker_BakeScene.


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