32typedef struct TaskQueue TaskQueue;
33typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
34typedef struct TQWorker TQWorker;
35typedef struct TQWorker_WeakRef TQWorker_WeakRef;
38typedef struct BasicTask_WeakRef BasicTask_WeakRef;
41#define _sti_BasicTask _sti_object
42#define SType_BasicTask BasicTask*
43#define STStorageType_BasicTask BasicTask*
44#define STypeArg_BasicTask(type, val) stgeneric(object, (ObjInst*)objInstCheckClass(BasicTask, val))
45#define STypeArgPtr_BasicTask(type, val) (stgeneric*)objInstCheckClassPtr(BasicTask, val)
46#define STypeCheckedArg_BasicTask(type, val) stType(type), stArg(type, val)
47#define STypeCheckedPtrArg_BasicTask(type, val) stType(type), stArgPtr(type, val)
53 TASK_Result_Basic_Count,
56typedef struct BasicTask_ClassIf {
61 uint32 (*run)(_In_
void* self, _In_ TaskQueue* tq, _In_ TQWorker* worker, _Inout_
TaskControl* tcon);
62 void (*runCancelled)(_In_
void* self, _In_ TaskQueue* tq, _In_ TQWorker* worker);
63 bool (*cancel)(_In_
void* self);
64 bool (*reset)(_In_
void* self);
66extern BasicTask_ClassIf BasicTask_ClassIf_tmpl;
86#define BasicTask(inst) objInstCheckClass(BasicTask, inst)
87#define BasicTaskNone ((BasicTask*)NULL)
89typedef struct BasicTask_WeakRef {
92 void* _is_BasicTask_WeakRef;
93 void* _is_ObjInst_WeakRef;
98#define BasicTask_WeakRef(inst) objWeakRefCheckClass(BasicTask, inst)
100bool BasicTask__setState(_In_
BasicTask* self, uint32 newstate);
102#define btask_setState(self, newstate) BasicTask__setState(BasicTask(self), newstate)
115#define btaskRun(self, tq, worker, tcon) (self)->_->run(BasicTask(self), TaskQueue(tq), TQWorker(worker), tcon)
121#define btaskRunCancelled(self, tq, worker) (self)->_->runCancelled(BasicTask(self), TaskQueue(tq), TQWorker(worker))
126#define btaskCancel(self) (self)->_->cancel(BasicTask(self))
131#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 Struct System - Introspectable, serializable POD structures in C.
CX Object System - Object-oriented programming in C.
Bare minimum task object with state tracking and run method.
Shared types and configuration structures for the task queue system.