29typedef struct TaskQueue TaskQueue;
30typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
31typedef struct TQWorker TQWorker;
32typedef struct TQWorker_WeakRef TQWorker_WeakRef;
35typedef struct BasicTask_WeakRef BasicTask_WeakRef;
43 TASK_Result_Basic_Count,
46typedef struct BasicTask_ClassIf {
51 uint32 (*run)(_In_
void* self, _In_ TaskQueue* tq, _In_ TQWorker* worker, _Inout_
TaskControl* tcon);
52 void (*runCancelled)(_In_
void* self, _In_ TaskQueue* tq, _In_ TQWorker* worker);
53 bool (*cancel)(_In_
void* self);
54 bool (*reset)(_In_
void* self);
56extern BasicTask_ClassIf BasicTask_ClassIf_tmpl;
72#define BasicTask(inst) ((BasicTask*)(unused_noeval((inst) && &((inst)->_is_BasicTask)), (inst)))
73#define BasicTaskNone ((BasicTask*)NULL)
75typedef struct BasicTask_WeakRef {
78 void* _is_BasicTask_WeakRef;
79 void* _is_ObjInst_WeakRef;
84#define BasicTask_WeakRef(inst) ((BasicTask_WeakRef*)(unused_noeval((inst) && &((inst)->_is_BasicTask_WeakRef)), (inst)))
86bool BasicTask__setState(_In_
BasicTask* self, uint32 newstate);
88#define btask_setState(self, newstate) BasicTask__setState(BasicTask(self), newstate)
101#define btaskRun(self, tq, worker, tcon) (self)->_->run(BasicTask(self), TaskQueue(tq), TQWorker(worker), tcon)
107#define btaskRunCancelled(self, tq, worker) (self)->_->runCancelled(BasicTask(self), TaskQueue(tq), TQWorker(worker))
112#define btaskCancel(self) (self)->_->cancel(BasicTask(self))
117#define btaskReset(self) (self)->_->reset(BasicTask(self))
#define saDeclarePtr(name)
BasicTaskRunResultEnum
Return values from BasicTask::run()
@ TASK_Result_Failure
Task failed, will transition to TASK_Failed state.
@ TASK_Result_Success
Task succeeded, will transition to TASK_Succeeded state.
CX Object System - Object-oriented programming in C.
Bare minimum task object with state tracking and run method.
atomic(uint32) state
Current task state and flags.
Shared types and configuration structures for the task queue system.