28typedef struct TaskQueue TaskQueue;
29typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
30typedef struct TQWorker TQWorker;
31typedef struct TQWorker_WeakRef TQWorker_WeakRef;
34typedef struct Task_WeakRef Task_WeakRef;
38typedef struct Task_ClassIf {
43 uint32 (*run)(_In_
void* self, _In_ TaskQueue* tq, _In_ TQWorker* worker, _Inout_
TaskControl* tcon);
44 void (*runCancelled)(_In_
void* self, _In_ TaskQueue* tq, _In_ TQWorker* worker);
45 bool (*cancel)(_In_
void* self);
46 bool (*reset)(_In_
void* self);
47 bool (*wait)(_In_
void* self, int64 timeout);
49extern Task_ClassIf Task_ClassIf_tmpl;
69#define Task(inst) ((Task*)(unused_noeval((inst) && &((inst)->_is_Task)), (inst)))
70#define TaskNone ((Task*)NULL)
72typedef struct Task_WeakRef {
75 void* _is_Task_WeakRef;
76 void* _is_BasicTask_WeakRef;
77 void* _is_ObjInst_WeakRef;
82#define Task_WeakRef(inst) ((Task_WeakRef*)(unused_noeval((inst) && &((inst)->_is_Task_WeakRef)), (inst)))
85#define ftask_setState(self, newstate) BasicTask__setState(BasicTask(self), newstate)
98#define ftaskRun(self, tq, worker, tcon) (self)->_->run(Task(self), TaskQueue(tq), TQWorker(worker), tcon)
104#define ftaskRunCancelled(self, tq, worker) (self)->_->runCancelled(Task(self), TaskQueue(tq), TQWorker(worker))
109#define ftaskCancel(self) (self)->_->cancel(Task(self))
111#define ftaskReset(self) (self)->_->reset(Task(self))
117#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 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.
atomic(uint32) state
Current task state and flags.