CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
mptask.h File Reference

Multiphase task with internal state machine. More...

#include <cx/obj.h>
#include "complextask.h"

Go to the source code of this file.

Data Structures

struct  MultiphaseTask
 Multiphase task with internal state machine for sequential execution phases. More...
 

Macros

#define mptaskAddPhases(self, parr)   mptask_addPhases(self, sizeof(parr) / sizeof((parr)[0]), (parr), false)
 
#define mptaskAddFailPhases(self, parr)   mptask_addPhases(self, sizeof(parr) / sizeof((parr)[0]), (parr), true)
 
#define mptask_addPhases(self, num, parr, fail)   MultiphaseTask__addPhases(MultiphaseTask(self), num, parr, fail)
 
#define mptaskRequireTask(self, dep, failok)   ComplexTask_requireTask(ComplexTask(self), Task(dep), failok)
 
#define mptaskRequireTaskTimeout(self, dep, failok, timeout)   ComplexTask_requireTaskTimeout(ComplexTask(self), Task(dep), failok, timeout)
 
#define mptaskRequireResource(self, res)   ComplexTask_requireResource(ComplexTask(self), TaskResource(res))
 
#define mptaskRequireResourceTimeout(self, res, timeout)   ComplexTask_requireResourceTimeout(ComplexTask(self), TaskResource(res), timeout)
 
#define mptaskRequireGate(self, gate)   ComplexTask_requireGate(ComplexTask(self), TRGate(gate))
 
#define mptaskRequireGateTimeout(self, gate, timeout)   ComplexTask_requireGateTimeout(ComplexTask(self), TRGate(gate), timeout)
 
#define mptaskRequire(self, req)   ComplexTask_require(ComplexTask(self), TaskRequires(req))
 
#define mptaskAdvance(self)   ComplexTask_advance(ComplexTask(self))
 
#define mptaskCheckRequires(self, updateProgress, expires)   ComplexTask_checkRequires(ComplexTask(self), updateProgress, expires)
 
#define mptaskCancelRequires(self)   ComplexTask_cancelRequires(ComplexTask(self))
 
#define mptaskAcquireRequires(self, acquired)   ComplexTask_acquireRequires(ComplexTask(self), acquired)
 
#define mptaskReleaseRequires(self, resources)   ComplexTask_releaseRequires(ComplexTask(self), resources)
 
#define mptaskRunCancelled(self, tq, worker)   (self)->_->runCancelled(MultiphaseTask(self), TaskQueue(tq), TQWorker(worker))
 
#define mptaskWait(self, timeout)   (self)->_->wait(MultiphaseTask(self), timeout)
 
#define mptaskFinish(self, result, tcon)   (self)->_->finish(MultiphaseTask(self), result, tcon)
 

Typedefs

typedef struct MultiphaseTask MultiphaseTask
 Multiphase task with internal state machine for sequential execution phases.
 
typedef uint32(* MPTPhaseFunc) (void *self, TaskQueue *tq, TQWorker *worker, TaskControl *tcon)
 

Enumerations

enum  MultiphaseTaskFlagsEnum { MPTASK_Greedy = 0x10 }
 Flags controlling MultiphaseTask behavior. More...
 

Detailed Description

Multiphase task with internal state machine.

Note
This file is automatically generated from taskqueue/task/mptask.cxh

Definition in file mptask.h.