CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
tqrunner.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>
8
9CX_C_BEGIN
10
11typedef struct TaskQueue TaskQueue;
12typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
13typedef struct TQRunner TQRunner;
14typedef struct TQRunner_WeakRef TQRunner_WeakRef;
15saDeclarePtr(TQRunner);
16saDeclarePtr(TQRunner_WeakRef);
17#define _sti_TQRunner _sti_object
18#define SType_TQRunner TQRunner*
19#define STStorageType_TQRunner TQRunner*
20#define STypeArg_TQRunner(type, val) stgeneric(object, (ObjInst*)objInstCheckClass(TQRunner, val))
21#define STypeArgPtr_TQRunner(type, val) (stgeneric*)objInstCheckClassPtr(TQRunner, val)
22#define STypeCheckedArg_TQRunner(type, val) stType(type), stArg(type, val)
23#define STypeCheckedPtrArg_TQRunner(type, val) stType(type), stArgPtr(type, val)
24
25typedef struct TQRunner_ClassIf {
26 ObjIface* _implements;
27 ObjIface* _parent;
28 size_t _size;
29
30 bool (*start)(_In_ void* self, _In_ TaskQueue* tq);
31 int64 (*tick)(_In_ void* self);
32 bool (*stop)(_In_ void* self);
33} TQRunner_ClassIf;
34extern TQRunner_ClassIf TQRunner_ClassIf_tmpl;
35
36typedef struct TQRunner {
37 union {
38 TQRunner_ClassIf* _;
39 void* _is_TQRunner;
40 void* _is_ObjInst;
41 };
42 ObjClassInfo* _clsinfo;
43 atomic(uintptr) _ref;
44 atomic(ptr) _weakref;
45
46 bool needsUIEvent;
47 TaskQueue* tq;
48} TQRunner;
49extern ObjClassInfo TQRunner_clsinfo;
50#define TQRunner(inst) objInstCheckClass(TQRunner, inst)
51#define TQRunnerNone ((TQRunner*)NULL)
52
53typedef struct TQRunner_WeakRef {
54 union {
55 ObjInst* _inst;
56 void* _is_TQRunner_WeakRef;
57 void* _is_ObjInst_WeakRef;
58 };
59 atomic(uintptr) _ref;
60 RWLock _lock;
61} TQRunner_WeakRef;
62#define TQRunner_WeakRef(inst) objWeakRefCheckClass(TQRunner, inst)
63
64// bool tqrunnerStart(TQRunner* self, TaskQueue* tq);
65#define tqrunnerStart(self, tq) (self)->_->start(TQRunner(self), TaskQueue(tq))
66// int64 tqrunnerTick(TQRunner* self);
67#define tqrunnerTick(self) (self)->_->tick(TQRunner(self))
68// bool tqrunnerStop(TQRunner* self);
69#define tqrunnerStop(self) (self)->_->stop(TQRunner(self))
70
71CX_C_END
#define saDeclarePtr(name)
Definition sarray.h:100
CX Struct System - Introspectable, serializable POD structures in C.
CX Object System - Object-oriented programming in C.
Shared types and configuration structures for the task queue system.