31typedef struct TaskQueue TaskQueue;
32typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
33typedef struct TQWorker TQWorker;
34typedef struct TQWorker_WeakRef TQWorker_WeakRef;
37typedef struct Task_WeakRef Task_WeakRef;
40#define _sti_Task _sti_object
41#define SType_Task Task*
42#define STStorageType_Task Task*
43#define STypeArg_Task(type, val) stgeneric(object, (ObjInst*)objInstCheckClass(Task, val))
44#define STypeArgPtr_Task(type, val) (stgeneric*)objInstCheckClassPtr(Task, val)
45#define STypeCheckedArg_Task(type, val) stType(type), stArg(type, val)
46#define STypeCheckedPtrArg_Task(type, val) stType(type), stArgPtr(type, val)
48typedef struct Task_ClassIf {
53 uint32 (*run)(_In_
void* self, _In_ TaskQueue* tq, _In_ TQWorker* worker, _Inout_
TaskControl* tcon);
54 void (*runCancelled)(_In_
void* self, _In_ TaskQueue* tq, _In_ TQWorker* worker);
55 bool (*cancel)(_In_
void* self);
56 bool (*reset)(_In_
void* self);
57 bool (*wait)(_In_
void* self, int64 timeout);
59extern Task_ClassIf Task_ClassIf_tmpl;
83#define Task(inst) objInstCheckClass(Task, inst)
84#define TaskNone ((Task*)NULL)
86typedef struct Task_WeakRef {
89 void* _is_Task_WeakRef;
90 void* _is_BasicTask_WeakRef;
91 void* _is_ObjInst_WeakRef;
96#define Task_WeakRef(inst) objWeakRefCheckClass(Task, inst)
99#define ftask_setState(self, newstate) BasicTask__setState(BasicTask(self), newstate)
112#define ftaskRun(self, tq, worker, tcon) (self)->_->run(Task(self), TaskQueue(tq), TQWorker(worker), tcon)
118#define ftaskRunCancelled(self, tq, worker) (self)->_->runCancelled(Task(self), TaskQueue(tq), TQWorker(worker))
123#define ftaskCancel(self) (self)->_->cancel(Task(self))
125#define ftaskReset(self) (self)->_->reset(Task(self))
131#define ftaskWait(self, timeout) (self)->_->wait(Task(self), timeout)
Bare minimum task object (base class)
#define saDeclarePtr(name)
Closures and callback chains aggregated header.
CX Struct System - Introspectable, serializable POD structures in C.
CX Object System - Object-oriented programming in C.
Task with name, timing information, and completion callbacks.
string name
Task name shown in monitor output.
cchain oncomplete
Functions called when task completes (success or failure)
int64 last
Last time this task was moved between queues and/or run.