7#include "tqmthreadpool.h"
11typedef struct TaskQueue TaskQueue;
12typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
13typedef struct TaskQueue TaskQueue;
14typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
15typedef struct TQThreadPoolRunner TQThreadPoolRunner;
16typedef struct TQThreadPoolRunner_WeakRef TQThreadPoolRunner_WeakRef;
17typedef struct TQDedicatedManager TQDedicatedManager;
18typedef struct TQDedicatedManager_WeakRef TQDedicatedManager_WeakRef;
21#define _sti_TQDedicatedManager _sti_object
22#define SType_TQDedicatedManager TQDedicatedManager*
23#define STStorageType_TQDedicatedManager TQDedicatedManager*
24#define STypeArg_TQDedicatedManager(type, val) stgeneric(object, (ObjInst*)objInstCheckClass(TQDedicatedManager, val))
25#define STypeArgPtr_TQDedicatedManager(type, val) (stgeneric*)objInstCheckClassPtr(TQDedicatedManager, val)
26#define STypeCheckedArg_TQDedicatedManager(type, val) stType(type), stArg(type, val)
27#define STypeCheckedPtrArg_TQDedicatedManager(type, val) stType(type), stArgPtr(type, val)
29typedef struct TQDedicatedManager_ClassIf {
34 bool (*start)(_In_
void* self, _In_ TaskQueue* tq);
35 bool (*stop)(_In_
void* self);
36 void (*notify)(_In_
void* self,
bool wakeup);
38 void (*pretask)(_In_
void* self);
39 int64 (*tick)(_In_
void* self);
40 void (*updatePoolSize)(_In_
void* self);
41} TQDedicatedManager_ClassIf;
42extern TQDedicatedManager_ClassIf TQDedicatedManager_ClassIf_tmpl;
44typedef struct TQDedicatedManager {
46 TQDedicatedManager_ClassIf* _;
47 void* _is_TQDedicatedManager;
48 void* _is_TQThreadPoolManager;
58 TQThreadPoolRunner* runner;
66#define TQDedicatedManager(inst) objInstCheckClass(TQDedicatedManager, inst)
67#define TQDedicatedManagerNone ((TQDedicatedManager*)NULL)
69typedef struct TQDedicatedManager_WeakRef {
72 void* _is_TQDedicatedManager_WeakRef;
73 void* _is_TQThreadPoolManager_WeakRef;
74 void* _is_TQManager_WeakRef;
75 void* _is_ObjInst_WeakRef;
79} TQDedicatedManager_WeakRef;
80#define TQDedicatedManager_WeakRef(inst) objWeakRefCheckClass(TQDedicatedManager, inst)
84#define tqdedicatedmanagerCreate() TQDedicatedManager_create()
87#define tqdedicatedmanagerStart(self, tq) (self)->_->start(TQDedicatedManager(self), TaskQueue(tq))
89#define tqdedicatedmanagerStop(self) (self)->_->stop(TQDedicatedManager(self))
91#define tqdedicatedmanagerNotify(self, wakeup) (self)->_->notify(TQDedicatedManager(self), wakeup)
95#define tqdedicatedmanagerPretask(self) (self)->_->pretask(TQDedicatedManager(self))
97#define tqdedicatedmanagerTick(self) (self)->_->tick(TQDedicatedManager(self))
99#define tqdedicatedmanagerUpdatePoolSize(self) (self)->_->updatePoolSize(TQDedicatedManager(self))
#define saDeclarePtr(name)
#define _objfactory_guaranteed
CX Struct System - Introspectable, serializable POD structures in C.
CX Object System - Object-oriented programming in C.