libGimbal 0.1.0
C17-Based Extended Standard Library and Cross-Language Runtime Framework
Loading...
Searching...
No Matches
gimbal_decls.h File Reference

Go to the source code of this file.

Macros

#define GBL_CLASS_IMPL_INTERFACE(iface)
 
#define GBL_CLASS_DERIVE_N(instance, baseKlass, ...)
 
#define GBL_CLASS_DERIVE_2(instance, baseInstance)
 
#define GBL_CLASS_DERIVE_1(instance)
 
#define GBL_CLASS_DERIVE(...)
 
#define GBL_CLASS_BASE_N(instance, ...)
 
#define GBL_CLASS_BASE_1(instance)
 
#define GBL_CLASS_BASE(...)
 
#define GBL_CLASS_BASE_EMPTY(...)
 
#define GBL_CLASS_END
 
#define GBL_CLASS_DERIVE_EMPTY(...)
 
#define GBL_INTERFACE_DERIVE_N(instance, klass, baseClass, ...)
 
#define GBL_INTERFACE_DERIVE_3(instance, klass, baseKlass)
 
#define GBL_INTERFACE_DERIVE_2(instance, klass)
 
#define GBL_INTERFACE_DERIVE_1(instance)
 
#define GBL_INTERFACE_DERIVE(...)
 
#define GBL_INTERFACE_END
 
#define GBL_INSTANCE_DERIVE(derivedInstance, baseInstance)
 
#define GBL_INSTANCE_BASE(instance)
 
#define GBL_INSTANCE_BASE_EMPTY(instance)
 
#define GBL_INSTANCE_END
 
#define GBL_INSTANCE_DERIVE_EMPTY(derived, base)
 
#define GBL_TYPEID(instanceStruct)
 
#define GBL_CLASS_STRUCT(cType)
 
#define GBL_INSTANCE_PRIVATE_STRUCT(instanceStruct)
 
#define GBL_CLASS_PRIVATE_STRUCT(instanceStruct)
 
#define GBL_DECLARE_TYPE(instanceStruct)
 
#define GBL_DECLARE_TYPE_(instanceStruct)
 
#define GBL_DECLARE_UNION(S)
 
#define GBL_DECLARE_STRUCT(S)
 
#define GBL_DECLARE_STRUCT_PRIVATE(S)
 
#define GBL_FORWARD_DECLARE_STRUCT(S)
 
#define GBL_FORWARD_DECLARE_STRUCT_PRIVATE(S)
 
#define GBL_FORWARD_DECLARE_TYPE(t)
 
#define GBL_DECLARE_ENUM(E)
 
#define GBL_DECLARE_FLAGS(F)
 
#define GBL_FORWARD_DECLARE_ENUM(E)
 
#define GBL_FORWARD_DECLARE_FLAGS(F)
 
#define GBL_DECLARE_OPAQUE(S)
 
#define GBL_PRIVATE_BEGIN
 
#define GBL_PRIVATE_END
 
#define GBL_PRIV(a)
 
#define GBL_PRIV_REF(a)
 
#define GBL_VSELF
 
#define GBL_DEFINE_EMPTY_STRUCT(S)
 
#define GBL_UNUSED_(a)
 
#define GBL_UNUSED(...)
 
#define GBL_EXPORT
 
#define GBL_DECL_VAR_TYPE(type, ...)
 
#define GBL_DECL_VAR_NAME(type, name)
 
#define GBL_DECL_VAR(type, name)
 
#define GBL_DECL_VAR_PAIR_TYPE(pair)
 
#define GBL_DECL_VAR_PAIR_NAME(pair)
 
#define GBL_DECL_VAR_PAIR(pair)
 
#define GBL_ENUM_TABLE_DECL_ENUM(cName, value, name, string)
 
#define GBL_ENUM_TABLE_DECLARE(table)
 
#define GBL_ENUM_TABLE_RETURN_STRING(cName, value, name, string)
 
#define GBL_ENUM_TABLE_TO_STRING(table, value)
 
#define GBL_ENUM_TABLE_DECLARE_STRINGIFIER(table)
 
#define GBL_META_ENUM_TUPLE(tuple)
 
#define GBL_META_ENUM_TUPLE_TYPE_INFO(typeInfo, valueTable)
 
#define GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_CNAME(cName, name, description, stringifier)
 
#define GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_NAME(cName, name, description, stringifier)
 
#define GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_DESCRIPTION(cName, name, description, stringifier)
 
#define GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_STRINGIFIER(cName, name, description, stringifier)
 
#define GBL_META_ENUM_TUPLE_VALUE_ARRAY(typeInfo, valueArray)
 
#define GBL_META_ENUM_TUPLE_VALUE_ARRAY_TUPLE_VALUE(...)
 
#define GBL_META_ENUM_TUPLE_VALUE_PROPERTY_CNAME(cName, value, name, string)
 
#define GBL_META_ENUM_TUPLE_VALUE_PROPERTY_NAME(cName, value, name, string)
 
#define GBL_META_ENUM_TUPLE_VALUE_PROPERTY_VALUE(cName, value, name, string)
 
#define GBL_META_ENUM_TUPLE_VALUE_PROPERTY_STRING(cName, value, name, string)
 
#define GBL_META_ENUM_TYPE_PROPERTY(table, postfix)
 

Detailed Description

Helper defines for struct, enum, flags, handle delcarations.

See also
gimbal_macro_utilities.h
Author
Falco Girgis

Definition in file gimbal_decls.h.

Macro Definition Documentation

◆ GBL_CLASS_IMPL_INTERFACE

#define GBL_CLASS_IMPL_INTERFACE (   iface)

Definition at line 27 of file gimbal_decls.h.

37 { \
38 /*! Inherited base class structure */ \
39 baseInstance##Class base;
40
41#define GBL_CLASS_DERIVE_1(instance) \
42 GBL_CLASS_DERIVE_2(instance, Gbl)
43
44#define GBL_CLASS_DERIVE(...) \
45 GBL_VA_OVERLOAD_CALL(GBL_CLASS_DERIVE, GBL_VA_OVERLOAD_SUFFIXER_2_N, __VA_ARGS__)
46
47#define GBL_CLASS_BASE_N(instance, ...) \
48 GBL_CLASS_DERIVE_N(instance, Gbl, __VA_ARGS__)
49
50#define GBL_CLASS_BASE_1(instance) \
51 GBL_CLASS_DERIVE_2(instance, Gbl)
52
53#define GBL_CLASS_BASE(...) \
54 GBL_VA_OVERLOAD_CALL(GBL_CLASS_BASE, GBL_VA_OVERLOAD_SUFFIXER_1_N, __VA_ARGS__)
55
56#define GBL_CLASS_BASE_EMPTY(...) \
57 GBL_CLASS_BASE(__VA_ARGS__) \
58 GBL_CLASS_END
59
60#define GBL_CLASS_END };
61
62#define GBL_CLASS_DERIVE_EMPTY(...) \
63 GBL_CLASS_DERIVE(__VA_ARGS__) \
64 GBL_CLASS_END
65
66#define GBL_INTERFACE_DERIVE_N(instance, klass, baseClass, ...) \
67 GBL_INTERFACE_DERIVE_3(instance, klass, baseClass) \
68 GBL_MAP(GBL_CLASS_IMPL_INTERFACE, __VA_ARGS__)
69
70#define GBL_INTERFACE_DERIVE_3(instance, klass, baseKlass) \
71 struct instance; \
72 typedef struct instance instance; \
73 struct klass; \
74 typedef struct klass klass; \
75 struct klass { \
76 /*! Inherited base class instance */ \
77 baseKlass base;
78
79#define GBL_INTERFACE_DERIVE_2(instance, klass) \
80 GBL_INTERFACE_DERIVE_3(instance, klass, GblInterface)
81
82#define GBL_INTERFACE_DERIVE_1(instance) \
83 GBL_INTERFACE_DERIVE_2(instance, instance##Class)
84
85#define GBL_INTERFACE_DERIVE(...) \
86 GBL_VA_OVERLOAD_CALL(GBL_INTERFACE_DERIVE, GBL_VA_OVERLOAD_SUFFIXER_3_N, __VA_ARGS__)
87
88#define GBL_INTERFACE_END };
89
90#define GBL_INSTANCE_DERIVE(derivedInstance, baseInstance) \
91 struct derivedInstance; \
92 typedef struct derivedInstance derivedInstance; \
93 struct derivedInstance { \
94 union { \
95 /*! Pointer to class/vtable structure */ \
96 derivedInstance##Class* pClass; \
97 /*! Inherited base instance structure */ \
98 baseInstance base; \
99 };
100
101#define GBL_INSTANCE_BASE(instance) \
102 struct instance; \
103 typedef struct instance instance; \
104 struct instance { \
105 union { \
106 /*! Pointer to class/vtable structure */\
107 instance##Class* pClass; \
108 /*! Inherited base instance structure */\
109 GblInstance base; \
110 };
111
112#define GBL_INSTANCE_BASE_EMPTY(instance) \
113 GBL_INSTANCE_BASE(instance) \
114 GBL_INSTANCE_END
115
116#define GBL_INSTANCE_END };
117
118#define GBL_INSTANCE_DERIVE_EMPTY(derived, base) \
119 GBL_INSTANCE_DERIVE(derived, base) \
120 GBL_INSTANCE_END
121
122#define GBL_TYPEID(instanceStruct) \
123 GBL_GLUE(instanceStruct, _type())
124
125#define GBL_CLASS_STRUCT(cType) cType##Class
126
127#define GBL_INSTANCE_PRIVATE_STRUCT(instanceStruct) \
128 GBL_GLUE(instanceStruct, _)
129
130#define GBL_CLASS_PRIVATE_STRUCT(instanceStruct) \
131 GBL_GLUE(GBL_GLUE(instanceStruct, Class), _)
132
133#ifdef __cplusplus
134# define GBL_DECLARE_TYPE(instanceStruct) \
135 extern "C" GBL_DECLARE_TYPE_(instanceStruct)
136#else
137# define GBL_DECLARE_TYPE(instanceStruct) \
138 GBL_DECLARE_TYPE_(instanceStruct)
139#endif
140
141#define GBL_DECLARE_TYPE_(instanceStruct) \
142 GblType GBL_GLUE(instanceStruct, _type(void)) GBL_NOEXCEPT
143
144#define GBL_DECLARE_UNION(S) \
145 union S; \
146 typedef union S S; \
147 union S
148
149#define GBL_DECLARE_STRUCT(S) \
150 struct S; \
151 typedef struct S S; \
152 struct S
153
154#define GBL_DECLARE_STRUCT_PRIVATE(S) \
155 struct S##_; \
156 typedef struct S##_ S##_; \
157 struct S##_
158
159#define GBL_FORWARD_DECLARE_STRUCT(S) \
160 struct S; \
161 typedef struct S S;
162
163#define GBL_FORWARD_DECLARE_STRUCT_PRIVATE(S) \
164 struct S##_; \
165 typedef struct S##_ S
166
167#define GBL_FORWARD_DECLARE_TYPE(t) \
168 GBL_TYPEID(t)
169
170#ifndef __cplusplus
171# define GBL_DECLARE_ENUM(E) \
172 typedef GblEnum E; \
173 enum E
174#else
175# define GBL_DECLARE_ENUM(E) \
176 enum E : GblEnum
177#endif
178
179#ifndef __cplusplus
180# define GBL_DECLARE_FLAGS(F) \
181 typedef GblFlags F; \
182 enum F
183#else
184# define GBL_DECLARE_FLAGS(F) \
185 enum F: GblFlags
186#endif
187
188#define GBL_FORWARD_DECLARE_ENUM(E) \
189 typedef GBL_ENUM E
190
191#define GBL_FORWARD_DECLARE_FLAGS(F) \
192 typedef GBL_FLAGS F
193
194#define GBL_DECLARE_OPAQUE(S) \
195 struct S##_; \
196 typedef struct S##_* S
197
198#define GBL_PRIVATE_BEGIN struct {
199
200#define GBL_PRIVATE_END } private_; //!< Private data structure
201
202#define GBL_PRIV(a) (a).private_
203#define GBL_PRIV_REF(a) (a)->private_
204
205#define GBL_VSELF GBL_SELF_TYPE self
206
207#define GBL_KLASS GBL_GLUE(GBL_SELF_TYPE, Class)* pSelf
208#define GBL_CKLASS const GBL_KLASS
209
210#define GBL_SELF GBL_SELF_TYPE* pSelf
211#define GBL_CSELF const GBL_SELF
212
213// sizeof(emptyStruct) is 1 in Cpp, 0 in C!
214#define GBL_DEFINE_EMPTY_STRUCT(S) \
215 typedef struct S { \
216 char cppCompat; \
217 } S
218
219#define GBL_UNUSED_(a) \
220 (void)(a)
221
222#define GBL_UNUSED(...) GBL_MAP_LIST(GBL_UNUSED_, __VA_ARGS__)
223
224#ifdef GBL_CTX_SHARED_LIB
225# ifdef GBL_CTX_EXPORTS
226# define GBL_EXPORT GBL_EXPORT_SHARED
227# else
228# define GBL_EXPORT GBL_IMPORT_SHARED
229# endif
230#else
231# define GBL_EXPORT
232#endif
233
234// ===== MISCELLANEOUS META TUPLES FOR MACRO GENERATORS ====
235#define GBL_DECL_VAR_TYPE(type, ...) \
236 type
237#define GBL_DECL_VAR_NAME(type, name) \
238 name
239
240#define GBL_DECL_VAR(type, name) \
241 GBL_DECL_VAR_TYPE(type, name) GBL_DECL_VAR_NAME(type, name)
242
243#define GBL_DECL_VAR_PAIR_TYPE(pair) \
244 GBL_DECL_VAR_TYPE pair
245
246#define GBL_DECL_VAR_PAIR_NAME(pair) \
247 GBL_DECL_VAR_NAME pair
248
249#define GBL_DECL_VAR_PAIR(pair) \
250 GBL_DECL_VAR pair
251
252
253// === ENUMERATION AUTOGENERATION ===========
254
255#define GBL_ENUM_TABLE_DECL_ENUM(cName, value, name, string) \
256 /*! string */ \
257 cName = value,
258
259
260#define GBL_ENUM_TABLE_DECLARE(table) \
261 GBL_DECLARE_ENUM(GBL_META_ENUM_TYPE_PROPERTY(table, CNAME)) { \
262 GBL_MAP_TUPLES(GBL_ENUM_TABLE_DECL_ENUM, GBL_MAP_TUPLES(GBL_EVAL, GBL_META_ENUM_TUPLE_VALUE_ARRAY table)) \
263 }; \
264 GBL_ENUM_TABLE_DECLARE_STRINGIFIER(table)
265
266#define GBL_ENUM_TABLE_RETURN_STRING(cName, value, name, string) \
267 case value: return string;
268
269#define GBL_ENUM_TABLE_TO_STRING(table, value) \
270 switch(value) { \
271 GBL_MAP_TUPLES(GBL_ENUM_TABLE_RETURN_STRING, GBL_MAP_TUPLES(GBL_EVAL, GBL_META_ENUM_TUPLE_VALUE_ARRAY table)) \
272 }
273
274#define GBL_ENUM_TABLE_DECLARE_STRINGIFIER(table) \
275 GBL_INLINE GBL_CONSTEXPR const char* GBL_EVAL(GBL_META_ENUM_TYPE_PROPERTY(table, STRINGIFIER))(GBL_EVAL(GBL_META_ENUM_TYPE_PROPERTY(table, CNAME)) value) { \
276 GBL_EVAL(GBL_ENUM_TABLE_TO_STRING(table, value)); \
277 return ""; \
278 }
279
280#define GBL_META_ENUM_TUPLE(tuple)
281
282#define GBL_META_ENUM_TUPLE_TYPE_INFO(typeInfo, valueTable) typeInfo
283
284#define GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_CNAME(cName, name, description, stringifier) cName
285#define GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_NAME(cName, name, description, stringifier) name
286#define GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_DESCRIPTION(cName, name, description, stringifier) description
287#define GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_STRINGIFIER(cName, name, description, stringifier) stringifier
288
289#define GBL_META_ENUM_TUPLE_VALUE_ARRAY(typeInfo, valueArray) valueArray
290
291#define GBL_META_ENUM_TUPLE_VALUE_ARRAY_TUPLE_VALUE(...) GBL_EVAL __VA_ARGS__
292
293#define GBL_META_ENUM_TUPLE_VALUE_PROPERTY_CNAME(cName, value, name, string) cName
294#define GBL_META_ENUM_TUPLE_VALUE_PROPERTY_NAME(cName, value, name, string) name
295#define GBL_META_ENUM_TUPLE_VALUE_PROPERTY_VALUE(cName, value, name, string) value
296#define GBL_META_ENUM_TUPLE_VALUE_PROPERTY_STRING(cName, value, name, string) string
297
298#define GBL_META_ENUM_TYPE_PROPERTY(table, postfix) GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_##postfix GBL_META_ENUM_TUPLE_TYPE_INFO table
299
300
301#ifdef __cplusplus
302}
303#endif
304
305#endif // GIMBAL_DECLS_H

◆ GBL_CLASS_DERIVE_N

#define GBL_CLASS_DERIVE_N (   instance,
  baseKlass,
  ... 
)

Definition at line 31 of file gimbal_decls.h.

◆ GBL_CLASS_DERIVE_2

#define GBL_CLASS_DERIVE_2 (   instance,
  baseInstance 
)

Definition at line 35 of file gimbal_decls.h.

38 { \
39 /*! Inherited base class structure */ \
40 baseInstance##Class base;

◆ GBL_CLASS_DERIVE_1

#define GBL_CLASS_DERIVE_1 (   instance)

Definition at line 42 of file gimbal_decls.h.

◆ GBL_CLASS_DERIVE

#define GBL_CLASS_DERIVE (   ...)

Definition at line 45 of file gimbal_decls.h.

◆ GBL_CLASS_BASE_N

#define GBL_CLASS_BASE_N (   instance,
  ... 
)

Definition at line 48 of file gimbal_decls.h.

◆ GBL_CLASS_BASE_1

#define GBL_CLASS_BASE_1 (   instance)

Definition at line 51 of file gimbal_decls.h.

◆ GBL_CLASS_BASE

#define GBL_CLASS_BASE (   ...)

Definition at line 54 of file gimbal_decls.h.

◆ GBL_CLASS_BASE_EMPTY

#define GBL_CLASS_BASE_EMPTY (   ...)

Definition at line 57 of file gimbal_decls.h.

◆ GBL_CLASS_END

#define GBL_CLASS_END

Definition at line 61 of file gimbal_decls.h.

◆ GBL_CLASS_DERIVE_EMPTY

#define GBL_CLASS_DERIVE_EMPTY (   ...)

Definition at line 63 of file gimbal_decls.h.

◆ GBL_INTERFACE_DERIVE_N

#define GBL_INTERFACE_DERIVE_N (   instance,
  klass,
  baseClass,
  ... 
)

Definition at line 67 of file gimbal_decls.h.

◆ GBL_INTERFACE_DERIVE_3

#define GBL_INTERFACE_DERIVE_3 (   instance,
  klass,
  baseKlass 
)

Definition at line 71 of file gimbal_decls.h.

76 { \
77 /*! Inherited base class instance */ \
78 baseKlass base;

◆ GBL_INTERFACE_DERIVE_2

#define GBL_INTERFACE_DERIVE_2 (   instance,
  klass 
)

Definition at line 80 of file gimbal_decls.h.

◆ GBL_INTERFACE_DERIVE_1

#define GBL_INTERFACE_DERIVE_1 (   instance)

Definition at line 83 of file gimbal_decls.h.

◆ GBL_INTERFACE_DERIVE

#define GBL_INTERFACE_DERIVE (   ...)

Definition at line 86 of file gimbal_decls.h.

◆ GBL_INTERFACE_END

#define GBL_INTERFACE_END

Definition at line 89 of file gimbal_decls.h.

◆ GBL_INSTANCE_DERIVE

#define GBL_INSTANCE_DERIVE (   derivedInstance,
  baseInstance 
)

Definition at line 91 of file gimbal_decls.h.

94 { \
95 union { \
96 /*! Pointer to class/vtable structure */ \
97 derivedInstance##Class* pClass; \
98 /*! Inherited base instance structure */ \
99 baseInstance base; \
100 };

◆ GBL_INSTANCE_BASE

#define GBL_INSTANCE_BASE (   instance)

Definition at line 102 of file gimbal_decls.h.

105 { \
106 union { \
107 /*! Pointer to class/vtable structure */\
108 instance##Class* pClass; \
109 /*! Inherited base instance structure */\
110 GblInstance base; \
111 };
Base struct for all instantiable meta types.

◆ GBL_INSTANCE_BASE_EMPTY

#define GBL_INSTANCE_BASE_EMPTY (   instance)

Definition at line 113 of file gimbal_decls.h.

◆ GBL_INSTANCE_END

#define GBL_INSTANCE_END

Definition at line 117 of file gimbal_decls.h.

◆ GBL_INSTANCE_DERIVE_EMPTY

#define GBL_INSTANCE_DERIVE_EMPTY (   derived,
  base 
)

Definition at line 119 of file gimbal_decls.h.

◆ GBL_TYPEID

#define GBL_TYPEID (   instanceStruct)

Definition at line 123 of file gimbal_decls.h.

◆ GBL_CLASS_STRUCT

#define GBL_CLASS_STRUCT (   cType)

Definition at line 126 of file gimbal_decls.h.

◆ GBL_INSTANCE_PRIVATE_STRUCT

#define GBL_INSTANCE_PRIVATE_STRUCT (   instanceStruct)

Definition at line 128 of file gimbal_decls.h.

◆ GBL_CLASS_PRIVATE_STRUCT

#define GBL_CLASS_PRIVATE_STRUCT (   instanceStruct)

Definition at line 131 of file gimbal_decls.h.

◆ GBL_DECLARE_TYPE

#define GBL_DECLARE_TYPE (   instanceStruct)

Definition at line 138 of file gimbal_decls.h.

◆ GBL_DECLARE_TYPE_

#define GBL_DECLARE_TYPE_ (   instanceStruct)

Definition at line 142 of file gimbal_decls.h.

◆ GBL_DECLARE_UNION

#define GBL_DECLARE_UNION (   S)

Definition at line 145 of file gimbal_decls.h.

◆ GBL_DECLARE_STRUCT

#define GBL_DECLARE_STRUCT (   S)

Definition at line 150 of file gimbal_decls.h.

◆ GBL_DECLARE_STRUCT_PRIVATE

#define GBL_DECLARE_STRUCT_PRIVATE (   S)

Definition at line 155 of file gimbal_decls.h.

◆ GBL_FORWARD_DECLARE_STRUCT

#define GBL_FORWARD_DECLARE_STRUCT (   S)

Definition at line 160 of file gimbal_decls.h.

◆ GBL_FORWARD_DECLARE_STRUCT_PRIVATE

#define GBL_FORWARD_DECLARE_STRUCT_PRIVATE (   S)

Definition at line 164 of file gimbal_decls.h.

◆ GBL_FORWARD_DECLARE_TYPE

#define GBL_FORWARD_DECLARE_TYPE (   t)

Definition at line 168 of file gimbal_decls.h.

◆ GBL_DECLARE_ENUM

#define GBL_DECLARE_ENUM (   E)

Definition at line 172 of file gimbal_decls.h.

◆ GBL_DECLARE_FLAGS

#define GBL_DECLARE_FLAGS (   F)

Definition at line 181 of file gimbal_decls.h.

◆ GBL_FORWARD_DECLARE_ENUM

#define GBL_FORWARD_DECLARE_ENUM (   E)

Definition at line 189 of file gimbal_decls.h.

◆ GBL_FORWARD_DECLARE_FLAGS

#define GBL_FORWARD_DECLARE_FLAGS (   F)

Definition at line 192 of file gimbal_decls.h.

◆ GBL_DECLARE_OPAQUE

#define GBL_DECLARE_OPAQUE (   S)

Definition at line 195 of file gimbal_decls.h.

◆ GBL_PRIVATE_BEGIN

#define GBL_PRIVATE_BEGIN

Definition at line 199 of file gimbal_decls.h.

◆ GBL_PRIVATE_END

#define GBL_PRIVATE_END

Private data structure.

Definition at line 201 of file gimbal_decls.h.

◆ GBL_PRIV

#define GBL_PRIV (   a)

Definition at line 203 of file gimbal_decls.h.

◆ GBL_PRIV_REF

#define GBL_PRIV_REF (   a)

Definition at line 204 of file gimbal_decls.h.

◆ GBL_VSELF

#define GBL_VSELF

Definition at line 206 of file gimbal_decls.h.

◆ GBL_DEFINE_EMPTY_STRUCT

#define GBL_DEFINE_EMPTY_STRUCT (   S)

Definition at line 215 of file gimbal_decls.h.

216 { \
217 char cppCompat; \
218 } S

◆ GBL_UNUSED_

#define GBL_UNUSED_ (   a)

Definition at line 220 of file gimbal_decls.h.

◆ GBL_UNUSED

#define GBL_UNUSED (   ...)

Definition at line 223 of file gimbal_decls.h.

◆ GBL_EXPORT

#define GBL_EXPORT

Definition at line 232 of file gimbal_decls.h.

◆ GBL_DECL_VAR_TYPE

#define GBL_DECL_VAR_TYPE (   type,
  ... 
)

Definition at line 236 of file gimbal_decls.h.

◆ GBL_DECL_VAR_NAME

#define GBL_DECL_VAR_NAME (   type,
  name 
)

Definition at line 238 of file gimbal_decls.h.

◆ GBL_DECL_VAR

#define GBL_DECL_VAR (   type,
  name 
)

Definition at line 241 of file gimbal_decls.h.

◆ GBL_DECL_VAR_PAIR_TYPE

#define GBL_DECL_VAR_PAIR_TYPE (   pair)

Definition at line 244 of file gimbal_decls.h.

◆ GBL_DECL_VAR_PAIR_NAME

#define GBL_DECL_VAR_PAIR_NAME (   pair)

Definition at line 247 of file gimbal_decls.h.

◆ GBL_DECL_VAR_PAIR

#define GBL_DECL_VAR_PAIR (   pair)

Definition at line 250 of file gimbal_decls.h.

◆ GBL_ENUM_TABLE_DECL_ENUM

#define GBL_ENUM_TABLE_DECL_ENUM (   cName,
  value,
  name,
  string 
)

Definition at line 256 of file gimbal_decls.h.

◆ GBL_ENUM_TABLE_DECLARE

#define GBL_ENUM_TABLE_DECLARE (   table)

Definition at line 261 of file gimbal_decls.h.

262 { \
263 GBL_MAP_TUPLES(GBL_ENUM_TABLE_DECL_ENUM, GBL_MAP_TUPLES(GBL_EVAL, GBL_META_ENUM_TUPLE_VALUE_ARRAY table)) \
264 }; \
265 GBL_ENUM_TABLE_DECLARE_STRINGIFIER(table)

◆ GBL_ENUM_TABLE_RETURN_STRING

#define GBL_ENUM_TABLE_RETURN_STRING (   cName,
  value,
  name,
  string 
)

Definition at line 267 of file gimbal_decls.h.

268 : return string;

◆ GBL_ENUM_TABLE_TO_STRING

#define GBL_ENUM_TABLE_TO_STRING (   table,
  value 
)

Definition at line 270 of file gimbal_decls.h.

271 { \
272 GBL_MAP_TUPLES(GBL_ENUM_TABLE_RETURN_STRING, GBL_MAP_TUPLES(GBL_EVAL, GBL_META_ENUM_TUPLE_VALUE_ARRAY table)) \
273 }

◆ GBL_ENUM_TABLE_DECLARE_STRINGIFIER

#define GBL_ENUM_TABLE_DECLARE_STRINGIFIER (   table)

Definition at line 275 of file gimbal_decls.h.

276 { \
277 GBL_EVAL(GBL_ENUM_TABLE_TO_STRING(table, value)); \
278 return ""; \
279 }

◆ GBL_META_ENUM_TUPLE

#define GBL_META_ENUM_TUPLE (   tuple)

Definition at line 281 of file gimbal_decls.h.

◆ GBL_META_ENUM_TUPLE_TYPE_INFO

#define GBL_META_ENUM_TUPLE_TYPE_INFO (   typeInfo,
  valueTable 
)

Definition at line 283 of file gimbal_decls.h.

◆ GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_CNAME

#define GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_CNAME (   cName,
  name,
  description,
  stringifier 
)

Definition at line 285 of file gimbal_decls.h.

◆ GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_NAME

#define GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_NAME (   cName,
  name,
  description,
  stringifier 
)

Definition at line 286 of file gimbal_decls.h.

◆ GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_DESCRIPTION

#define GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_DESCRIPTION (   cName,
  name,
  description,
  stringifier 
)

Definition at line 287 of file gimbal_decls.h.

◆ GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_STRINGIFIER

#define GBL_META_ENUM_TUPLE_TYPE_INFO_PROPERTY_STRINGIFIER (   cName,
  name,
  description,
  stringifier 
)

Definition at line 288 of file gimbal_decls.h.

◆ GBL_META_ENUM_TUPLE_VALUE_ARRAY

#define GBL_META_ENUM_TUPLE_VALUE_ARRAY (   typeInfo,
  valueArray 
)

Definition at line 290 of file gimbal_decls.h.

◆ GBL_META_ENUM_TUPLE_VALUE_ARRAY_TUPLE_VALUE

#define GBL_META_ENUM_TUPLE_VALUE_ARRAY_TUPLE_VALUE (   ...)

Definition at line 292 of file gimbal_decls.h.

◆ GBL_META_ENUM_TUPLE_VALUE_PROPERTY_CNAME

#define GBL_META_ENUM_TUPLE_VALUE_PROPERTY_CNAME (   cName,
  value,
  name,
  string 
)

Definition at line 294 of file gimbal_decls.h.

◆ GBL_META_ENUM_TUPLE_VALUE_PROPERTY_NAME

#define GBL_META_ENUM_TUPLE_VALUE_PROPERTY_NAME (   cName,
  value,
  name,
  string 
)

Definition at line 295 of file gimbal_decls.h.

◆ GBL_META_ENUM_TUPLE_VALUE_PROPERTY_VALUE

#define GBL_META_ENUM_TUPLE_VALUE_PROPERTY_VALUE (   cName,
  value,
  name,
  string 
)

Definition at line 296 of file gimbal_decls.h.

◆ GBL_META_ENUM_TUPLE_VALUE_PROPERTY_STRING

#define GBL_META_ENUM_TUPLE_VALUE_PROPERTY_STRING (   cName,
  value,
  name,
  string 
)

Definition at line 297 of file gimbal_decls.h.

◆ GBL_META_ENUM_TYPE_PROPERTY

#define GBL_META_ENUM_TYPE_PROPERTY (   table,
  postfix 
)

Definition at line 299 of file gimbal_decls.h.