#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) |
![]() | |
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 | |
![]() | |
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 |
![]() | |
using | ValueType = void |
![]() | |
ResultOk< void > | SetResult () |
void | GetResultValue () |
template<typename FN , typename... ARGS> | |
Result< void > | Invoke (FN &&obj, ARGS &&... args) |