#include <job.h>

Template for jobs which inherit from JobInterface (and are not created using a lambda).
| IMPLEMENTATION | The job implementation type (used to build the jump table). |
| RESULTVALUETYPE | An optional result value type to be used if the job returns more than just Result<void>. |
| USE_VIRTUAL_DESTRUCTOR | By default ~IMPLEMENTATION() is called on destruction. Specify true if you require a virtual destructor. |
The following snippet implements a job which returns an Int.
Static Public Member Functions | |
| template<typename... ARGS> | |
| static ResultMemT< JobResultRef< RESULTVALUETYPE > > | Create (ARGS &&... args) |
Static Public Member Functions inherited from JobInterface | |
| template<JOBCANCELLATION B = JOBCANCELLATION::AUTOMATIC, typename FN , typename... ARGS> | |
| static ResultMemT< JobInterface * > | Create (FN &&src, ARGS &&... args) |
| static Int | GetCurrentWorkerThreadIndex () |
| static Int | GetCurrentThreadCount () |
| static Bool | IsCurrentJobCancelled (const JobInterface *optionalJob=nullptr) |
| static JobStatusInterface * | GetCurrentJob () |
Private Member Functions | |
| MAXON_DISALLOW_COPY_AND_ASSIGN (JobInterfaceTemplate) | |
Additional Inherited Members | |
Public Member Functions inherited from JobInterface | |
| JOBOPTIONFLAGS | GetJobOptions () const |
| const Char * | GetName () const |
| JobInterface (const JobInterfaceJumpTablePOD &jmpTable) | |
| ~JobInterface () override | |
| JobInterface (JobInterface &&src) | |
| JobInterface & | operator= (JobInterface &&src) |
| Bool | Wait (TimeValue timeout=TIMEVALUE_INFINITE, WAITMODE mode=WAITMODE::DEFAULT) const |
| Result< void > | GetResult (TimeValue timeout=TIMEVALUE_INFINITE, WAITMODE mode=WAITMODE::DEFAULT) const |
| Result< void > | MoveResult (TimeValue timeout=TIMEVALUE_INFINITE, WAITMODE mode=WAITMODE::DEFAULT) |
| void | Cancel () |
| Bool | IsCancelled () const |
| void | CancelAndWait (WAITMODE mode=WAITMODE::DEFAULT) |
| JobInterface * | Enqueue (JobQueueInterface *queue=JOBQUEUE_CURRENT) |
| Result< void > | AddSubJob (JobInterface *subJob) |
| template<typename JOB > | |
| Result< void > | AddSubJob (ResultMemT< JOB * > subJob) |
| template<typename JOBREF > | |
| Result< void > | AddSubJob (ResultMemT< JOBREF > &&subJob) |
| template<typename GROUP > | |
| Result< void > | AddSubGroup (GROUP *subGroup) |
| template<typename GROUP > | |
| Result< void > | AddSubGroup (ResultMemT< GROUP * > subGroup) |
| template<typename GROUP > | |
| Result< void > | AddSubGroup (ResultMemT< GROUP > subGroup) |
| JobGroupInterface * | GetJobGroup () const |
| ObservableFinishedBase< JobInterface > | ObservableFinished () |
| ObservableCancelledBase< JobInterface > | ObservableCancelled () |
| Result< void > | Then (JobInterface *next, JobQueueInterface *queue=JOBQUEUE_CURRENT) |
| String | ToString (const FormatStatement *formatStatement=nullptr) const |
Protected Types inherited from JobResultInterface< void > | |
| using | ValueType = void |
Protected Member Functions inherited from JobResultInterface< void > | |
| ResultOk< void > | SetResult () |
| void | GetResultValue () |
| template<typename FN , typename... ARGS> | |
| Result< void > | Invoke (FN &&obj, ARGS &&... args) |