CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
tqrmanual.h
1#pragma once
2// This header file is auto-generated!
3// Do not make changes to this file or they will be overwritten.
4// clang-format off
5#include <cx/obj.h>
6#include <cx/struct.h>
7#include "tqrunner.h"
8
9CX_C_BEGIN
10
11typedef struct TaskQueue TaskQueue;
12typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
13typedef struct TaskQueue TaskQueue;
14typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
15typedef struct TQManualWorker TQManualWorker;
16typedef struct TQManualWorker_WeakRef TQManualWorker_WeakRef;
17typedef struct TQManualRunner TQManualRunner;
18typedef struct TQManualRunner_WeakRef TQManualRunner_WeakRef;
19saDeclarePtr(TQManualRunner);
20saDeclarePtr(TQManualRunner_WeakRef);
21#define _sti_TQManualRunner _sti_object
22#define SType_TQManualRunner TQManualRunner*
23#define STStorageType_TQManualRunner TQManualRunner*
24#define STypeArg_TQManualRunner(type, val) stgeneric(object, (ObjInst*)objInstCheckClass(TQManualRunner, val))
25#define STypeArgPtr_TQManualRunner(type, val) (stgeneric*)objInstCheckClassPtr(TQManualRunner, val)
26#define STypeCheckedArg_TQManualRunner(type, val) stType(type), stArg(type, val)
27#define STypeCheckedPtrArg_TQManualRunner(type, val) stType(type), stArgPtr(type, val)
28
29typedef struct TQManualRunner_ClassIf {
30 ObjIface* _implements;
31 ObjIface* _parent;
32 size_t _size;
33
34 bool (*start)(_In_ void* self, _In_ TaskQueue* tq);
35 int64 (*tick)(_In_ void* self);
36 bool (*stop)(_In_ void* self);
37} TQManualRunner_ClassIf;
38extern TQManualRunner_ClassIf TQManualRunner_ClassIf_tmpl;
39
40typedef struct TQManualRunner {
41 union {
42 TQManualRunner_ClassIf* _;
43 void* _is_TQManualRunner;
44 void* _is_TQRunner;
45 void* _is_ObjInst;
46 };
47 ObjClassInfo* _clsinfo;
48 atomic(uintptr) _ref;
49 atomic(ptr) _weakref;
50
51 bool needsUIEvent;
52 TaskQueue* tq;
53 TQManualWorker* worker;
54} TQManualRunner;
55extern ObjClassInfo TQManualRunner_clsinfo;
56#define TQManualRunner(inst) objInstCheckClass(TQManualRunner, inst)
57#define TQManualRunnerNone ((TQManualRunner*)NULL)
58
59typedef struct TQManualRunner_WeakRef {
60 union {
61 ObjInst* _inst;
62 void* _is_TQManualRunner_WeakRef;
63 void* _is_TQRunner_WeakRef;
64 void* _is_ObjInst_WeakRef;
65 };
66 atomic(uintptr) _ref;
67 RWLock _lock;
68} TQManualRunner_WeakRef;
69#define TQManualRunner_WeakRef(inst) objWeakRefCheckClass(TQManualRunner, inst)
70
71_objfactory_guaranteed TQManualRunner* TQManualRunner_create();
72// TQManualRunner* tqmanualrunnerCreate();
73#define tqmanualrunnerCreate() TQManualRunner_create()
74
75// bool tqmanualrunnerStart(TQManualRunner* self, TaskQueue* tq);
76#define tqmanualrunnerStart(self, tq) (self)->_->start(TQManualRunner(self), TaskQueue(tq))
77// int64 tqmanualrunnerTick(TQManualRunner* self);
78#define tqmanualrunnerTick(self) (self)->_->tick(TQManualRunner(self))
79// bool tqmanualrunnerStop(TQManualRunner* self);
80#define tqmanualrunnerStop(self) (self)->_->stop(TQManualRunner(self))
81
82CX_C_END
#define saDeclarePtr(name)
Definition sarray.h:100
#define _objfactory_guaranteed
Definition objimpl.h:106
CX Struct System - Introspectable, serializable POD structures in C.
CX Object System - Object-oriented programming in C.