7#include "tqmthreadpool.h"
12typedef struct TaskQueue TaskQueue;
13typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
14typedef struct TaskQueue TaskQueue;
15typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
16typedef struct TQThreadPoolRunner TQThreadPoolRunner;
17typedef struct TQThreadPoolRunner_WeakRef TQThreadPoolRunner_WeakRef;
18typedef struct TQInWorkerManager TQInWorkerManager;
19typedef struct TQInWorkerManager_WeakRef TQInWorkerManager_WeakRef;
22#define _sti_TQInWorkerManager _sti_object
23#define SType_TQInWorkerManager TQInWorkerManager*
24#define STStorageType_TQInWorkerManager TQInWorkerManager*
25#define STypeArg_TQInWorkerManager(type, val) stgeneric(object, (ObjInst*)objInstCheckClass(TQInWorkerManager, val))
26#define STypeArgPtr_TQInWorkerManager(type, val) (stgeneric*)objInstCheckClassPtr(TQInWorkerManager, val)
27#define STypeCheckedArg_TQInWorkerManager(type, val) stType(type), stArg(type, val)
28#define STypeCheckedPtrArg_TQInWorkerManager(type, val) stType(type), stArgPtr(type, val)
30typedef struct TQInWorkerManager_ClassIf {
35 bool (*start)(_In_
void* self, _In_ TaskQueue* tq);
36 bool (*stop)(_In_
void* self);
37 void (*notify)(_In_
void* self,
bool wakeup);
39 void (*pretask)(_In_
void* self);
40 int64 (*tick)(_In_
void* self);
41 void (*updatePoolSize)(_In_
void* self);
42} TQInWorkerManager_ClassIf;
43extern TQInWorkerManager_ClassIf TQInWorkerManager_ClassIf_tmpl;
45typedef struct TQInWorkerManager {
47 TQInWorkerManager_ClassIf* _;
48 void* _is_TQInWorkerManager;
49 void* _is_TQThreadPoolManager;
59 TQThreadPoolRunner* runner;
67#define TQInWorkerManager(inst) objInstCheckClass(TQInWorkerManager, inst)
68#define TQInWorkerManagerNone ((TQInWorkerManager*)NULL)
70typedef struct TQInWorkerManager_WeakRef {
73 void* _is_TQInWorkerManager_WeakRef;
74 void* _is_TQThreadPoolManager_WeakRef;
75 void* _is_TQManager_WeakRef;
76 void* _is_ObjInst_WeakRef;
80} TQInWorkerManager_WeakRef;
81#define TQInWorkerManager_WeakRef(inst) objWeakRefCheckClass(TQInWorkerManager, inst)
85#define tqinworkermanagerCreate() TQInWorkerManager_create()
88#define tqinworkermanagerStart(self, tq) (self)->_->start(TQInWorkerManager(self), TaskQueue(tq))
90#define tqinworkermanagerStop(self) (self)->_->stop(TQInWorkerManager(self))
92#define tqinworkermanagerNotify(self, wakeup) (self)->_->notify(TQInWorkerManager(self), wakeup)
96#define tqinworkermanagerPretask(self) (self)->_->pretask(TQInWorkerManager(self))
98#define tqinworkermanagerTick(self) (self)->_->tick(TQInWorkerManager(self))
100#define tqinworkermanagerUpdatePoolSize(self) (self)->_->updatePoolSize(TQInWorkerManager(self))
#define saDeclarePtr(name)
#define _objfactory_guaranteed
CX Struct System - Introspectable, serializable POD structures in C.
Mutex synchronization primitive.
CX Object System - Object-oriented programming in C.