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 "tqrunner.h"
7
8typedef struct TaskQueue TaskQueue;
9typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
10typedef struct TaskQueue TaskQueue;
11typedef struct TaskQueue_WeakRef TaskQueue_WeakRef;
12typedef struct TQManualWorker TQManualWorker;
13typedef struct TQManualWorker_WeakRef TQManualWorker_WeakRef;
14typedef struct TQManualRunner TQManualRunner;
15typedef struct TQManualRunner_WeakRef TQManualRunner_WeakRef;
16saDeclarePtr(TQManualRunner);
17saDeclarePtr(TQManualRunner_WeakRef);
18
19typedef struct TQManualRunner_ClassIf {
20 ObjIface* _implements;
21 ObjIface* _parent;
22 size_t _size;
23
24 bool (*start)(_In_ void* self, _In_ TaskQueue* tq);
25 int64 (*tick)(_In_ void* self);
26 bool (*stop)(_In_ void* self);
27} TQManualRunner_ClassIf;
28extern TQManualRunner_ClassIf TQManualRunner_ClassIf_tmpl;
29
30typedef struct TQManualRunner {
31 union {
32 TQManualRunner_ClassIf* _;
33 void* _is_TQManualRunner;
34 void* _is_TQRunner;
35 void* _is_ObjInst;
36 };
37 ObjClassInfo* _clsinfo;
38 atomic(uintptr) _ref;
39 atomic(ptr) _weakref;
40
41 bool needsUIEvent;
42 TaskQueue* tq;
43 TQManualWorker* worker;
44} TQManualRunner;
45extern ObjClassInfo TQManualRunner_clsinfo;
46#define TQManualRunner(inst) ((TQManualRunner*)(unused_noeval((inst) && &((inst)->_is_TQManualRunner)), (inst)))
47#define TQManualRunnerNone ((TQManualRunner*)NULL)
48
49typedef struct TQManualRunner_WeakRef {
50 union {
51 ObjInst* _inst;
52 void* _is_TQManualRunner_WeakRef;
53 void* _is_TQRunner_WeakRef;
54 void* _is_ObjInst_WeakRef;
55 };
56 atomic(uintptr) _ref;
57 RWLock _lock;
58} TQManualRunner_WeakRef;
59#define TQManualRunner_WeakRef(inst) ((TQManualRunner_WeakRef*)(unused_noeval((inst) && &((inst)->_is_TQManualRunner_WeakRef)), (inst)))
60
61_objfactory_guaranteed TQManualRunner* TQManualRunner_create();
62// TQManualRunner* tqmanualrunnerCreate();
63#define tqmanualrunnerCreate() TQManualRunner_create()
64
65// bool tqmanualrunnerStart(TQManualRunner* self, TaskQueue* tq);
66#define tqmanualrunnerStart(self, tq) (self)->_->start(TQManualRunner(self), TaskQueue(tq))
67// int64 tqmanualrunnerTick(TQManualRunner* self);
68#define tqmanualrunnerTick(self) (self)->_->tick(TQManualRunner(self))
69// bool tqmanualrunnerStop(TQManualRunner* self);
70#define tqmanualrunnerStop(self) (self)->_->stop(TQManualRunner(self))
71
#define saDeclarePtr(name)
Definition sarray.h:98
#define _objfactory_guaranteed
Definition objimpl.h:104
CX Object System - Object-oriented programming in C.