2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
24#include "../ifaces/gimbal_ivariant.h"
25#include "../../containers/gimbal_array_map.h"
26#include "../signals/gimbal_signal.h"
29
30
31
33#define GBL_BOX(self) GBL_CAST
(GblBox, self)
34#define GBL_BOX_CLASS(klass) GBL_CLASS_CAST
(GblBox, klass)
35#define GBL_BOX_GET_CLASS(self) GBL_CLASSOF
(GblBox, self)
39
40
41
42#define GBL_REF(box) GblBox_ref(GBL_BOX(box))
43#define GBL_UNREF(box) GblBox_unref(GBL_AS
(GblBox, box))
46#define GBL_SELF_TYPE GblBox
53
54
55
56
57
58
59
60
61
62
63
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
96 volatile uint16_t refCounter;
98 uint16_t contextType : 1,
99 uint16_t constructedInPlace : 1,
100 uint16_t finalizing : 1,
101 uint16_t destructing : 1,
102 uint16_t derivedFlags : 12
109 (finalize, (GBL_INSTANCE_TYPE, pReceiver))
114
115
116
130
131
132
133
144
145
146
147
167
168
169
174 GblArrayMapDtorFn pFnUdDtor,
180 GblArrayMapDtorFn pFnUdDtor,
185
186
187
188
198
199
200
201
209
210
211
212
223
224
225
226
243#define GblBoxClass_createFloating(...)
244 GblBoxClass_createFloatingDefault_
(__VA_ARGS__)
245#define GblBoxClass_createFloatingDefault_(...)
247#define GblBoxClass_createFloatingDefault__(type, size, ud, dtor, ...)
248 (GblBoxClass_createFloating
)(type, size, ud, dtor)
250#define GblBoxClass_constructFloating(...)
251 GblBoxClass_constructFloatingDefault_
(__VA_ARGS__)
252#define GblBoxClass_constructFloatingDefault_(...)
254#define GblBoxClass_constructFloatingDefault__(klass, type, ud, dtor, ...)
255 (GblBoxClass_constructFloating
)(klass, type, ud, dtor)
257#define GblBoxClass_setField(...)
258 GblBoxClass_setFieldDefault_
(__VA_ARGS__)
259#define GblBoxClass_setFieldDefault_(...)
260 GblBoxClass_setFieldDefault__
(__VA_ARGS__, GBL_NULL)
261#define GblBoxClass_setFieldDefault__(klass, key, value, dtor, ...)
262 (GblBoxClass_setField
)(klass, key, value, dtor)
264#define GblBox_create(...)
265 GblBox_createDefault_
(__VA_ARGS__)
266#define GblBox_createDefault_(...)
268#define GblBox_createDefault__(type, size, ud, dtor, klass, ...)
269 (GblBox_create
)(type, size, ud, dtor, klass)
271#define GblBox_construct(...)
272 GblBox_constructDefault_
(__VA_ARGS__)
273#define GblBox_constructDefault_(...)
275#define GblBox_constructDefault__(self, type, ud, dtor, klass, ...)
276 (GblBox_construct
)(self, type, ud, dtor, klass)
278#define GblBox_setField(...)
279 GblBox_setFieldDefault_
(__VA_ARGS__)
280#define GblBox_setFieldDefault_(...)
281 GblBox_setFieldDefault__
(__VA_ARGS__, GBL_NULL)
282#define GblBox_setFieldDefault__(self, key, value, dtor, ...)
283 (GblBox_setField
)(self, key, value, dtor)
#define GBL_BOX(self)
Casts a GblInstance to GblBox.
#define GBL_FORWARD_DECLARE_STRUCT(S)
#define GBL_INSTANCE_BASE(instance)
#define GBL_TYPEID(instanceStruct)
#define GBL_CLASS_BASE(...)
#define GBL_PRIVATE_BEGIN
#define GBL_PRIVATE_END
Private data structure.
#define GBL_BIT_FIELDS(...)
Used to declare an endian-independent group of bitfields.
#define GBL_SIGNALS(instanceStruct,...)
Declares a list of signals to be associated with the given instanceStruct.
uint8_t GblBool
Basic boolean type, standardized to sizeof(char)
uint16_t GblRefCount
Type able to hold a reference counter across the codebase.
uintptr_t GblQuark
Uniquely identifiable interned string type.
GblArrayMap * pFields
PRIVATE: Internal storage for userdata fields.