12typedef struct TaskQueue TaskQueue;
13typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
14typedef struct TQThreadWorker TQThreadWorker;
15typedef struct TQThreadWorker_WeakRef TQThreadWorker_WeakRef;
18#define _sti_TQThreadWorker _sti_object
19#define SType_TQThreadWorker TQThreadWorker*
20#define STStorageType_TQThreadWorker TQThreadWorker*
21#define STypeArg_TQThreadWorker(type, val) stgeneric(object, (ObjInst*)objInstCheckClass(TQThreadWorker, val))
22#define STypeArgPtr_TQThreadWorker(type, val) (stgeneric*)objInstCheckClassPtr(TQThreadWorker, val)
23#define STypeCheckedArg_TQThreadWorker(type, val) stType(type), stArg(type, val)
24#define STypeCheckedPtrArg_TQThreadWorker(type, val) stType(type), stArgPtr(type, val)
26typedef struct TQThreadWorker_ClassIf {
33 void (*onStart)(_In_
void* self, _In_ TaskQueue* tq);
35 int64 (*tick)(_In_
void* self, _In_ TaskQueue* tq);
37 void (*onStop)(_In_
void* self, _In_ TaskQueue* tq);
38 bool (*startThread)(_In_
void* self, _In_ TaskQueue* tq);
39} TQThreadWorker_ClassIf;
40extern TQThreadWorker_ClassIf TQThreadWorker_ClassIf_tmpl;
42typedef struct TQThreadWorker {
44 TQThreadWorker_ClassIf* _;
45 void* _is_TQThreadWorker;
60#define TQThreadWorker(inst) objInstCheckClass(TQThreadWorker, inst)
61#define TQThreadWorkerNone ((TQThreadWorker*)NULL)
63typedef struct TQThreadWorker_WeakRef {
66 void* _is_TQThreadWorker_WeakRef;
67 void* _is_TQWorker_WeakRef;
68 void* _is_ObjInst_WeakRef;
72} TQThreadWorker_WeakRef;
73#define TQThreadWorker_WeakRef(inst) objWeakRefCheckClass(TQThreadWorker, inst)
77#define tqthreadworkerCreate(num) TQThreadWorker_create(num)
83#define tqthreadworkerOnStart(self, tq) (self)->_->onStart(TQThreadWorker(self), TaskQueue(tq))
87#define tqthreadworkerTick(self, tq) (self)->_->tick(TQThreadWorker(self), TaskQueue(tq))
91#define tqthreadworkerOnStop(self, tq) (self)->_->onStop(TQThreadWorker(self), TaskQueue(tq))
93#define tqthreadworkerStartThread(self, tq) (self)->_->startThread(TQThreadWorker(self), TaskQueue(tq))
#define saDeclarePtr(name)
#define _objfactory_guaranteed
bool(* TQUICallback)(TaskQueue *tq)
CX Struct System - Introspectable, serializable POD structures in C.
Threading system aggregated header.
CX Object System - Object-oriented programming in C.