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>
7
8typedef struct TaskQueue TaskQueue;
9typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
10typedef struct TQRunner TQRunner;
11typedef struct TQRunner_WeakRef TQRunner_WeakRef;
12saDeclarePtr(TQRunner);
13saDeclarePtr(TQRunner_WeakRef);
14
15typedef struct TQRunner_ClassIf {
16 ObjIface* _implements;
17 ObjIface* _parent;
18 size_t _size;
19
20 bool (*start)(_In_ void* self, _In_ TaskQueue* tq);
21 int64 (*tick)(_In_ void* self);
22 bool (*stop)(_In_ void* self);
23} TQRunner_ClassIf;
24extern TQRunner_ClassIf TQRunner_ClassIf_tmpl;
25
26typedef struct TQRunner {
27 union {
28 TQRunner_ClassIf* _;
29 void* _is_TQRunner;
30 void* _is_ObjInst;
31 };
32 ObjClassInfo* _clsinfo;
33 atomic(uintptr) _ref;
34 atomic(ptr) _weakref;
35
36 bool needsUIEvent;
37 TaskQueue* tq;
38} TQRunner;
39extern ObjClassInfo TQRunner_clsinfo;
40#define TQRunner(inst) ((TQRunner*)(unused_noeval((inst) && &((inst)->_is_TQRunner)), (inst)))
41#define TQRunnerNone ((TQRunner*)NULL)
42
43typedef struct TQRunner_WeakRef {
44 union {
45 ObjInst* _inst;
46 void* _is_TQRunner_WeakRef;
47 void* _is_ObjInst_WeakRef;
48 };
49 atomic(uintptr) _ref;
50 RWLock _lock;
51} TQRunner_WeakRef;
52#define TQRunner_WeakRef(inst) ((TQRunner_WeakRef*)(unused_noeval((inst) && &((inst)->_is_TQRunner_WeakRef)), (inst)))
53
54// bool tqrunnerStart(TQRunner* self, TaskQueue* tq);
55#define tqrunnerStart(self, tq) (self)->_->start(TQRunner(self), TaskQueue(tq))
56// int64 tqrunnerTick(TQRunner* self);
57#define tqrunnerTick(self) (self)->_->tick(TQRunner(self))
58// bool tqrunnerStop(TQRunner* self);
59#define tqrunnerStop(self) (self)->_->stop(TQRunner(self))
60
#define saDeclarePtr(name)
Definition sarray.h:98
CX Object System - Object-oriented programming in C.
Shared types and configuration structures for the task queue system.