2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23#ifndef GIMBAL_OPAQUE_H
24#define GIMBAL_OPAQUE_H
29
30
31
33#define GBL_OPAQUE_CLASS(klass) (GBL_CLASS_CAST
(GblOpaque, klass))
39typedef GBL_RESULT (*GblOpaqueCopyFn)(
void* pOpaque,
void** ppNewOpaque);
41typedef GBL_RESULT (*GblOpaqueFreeFn)(
void* pOpaque);
50
51
52
53
54
60
61
62
73
74
75
#define GBL_TYPEID(instanceStruct)
#define GBL_CLASS_DERIVE(...)
GblType GblOpaque_registerRef(const char *pName)
Convenience function which registers a new type meta type which is used with GblRef to manage its lif...
GBL_RESULT GblOpaque_free(void *pOpaque, GblType type)
Frees an opaque structure with the given type using its vtable.
GBL_RESULT GblOpaque_copy(void *pOpaque, GblType type, void **ppNewOpaque)
Copies an opaque structure with the given type into ppNewOpaque, using its vtable.
GblType GblOpaque_register(const char *pName, const GblOpaqueVTable *pVTable)
Registers a new opaque subtype with the virtual table given by pVTable.
GblType GblOpaque_type(void)
Returns the GblType UUID for GblOpaque.
const GblOpaqueVTable * pVTable
Pointer to the virtual table structure.
Virtual table structure for a GblOpaqueClass.
GblOpaqueCopyFn pFnCopy
Copy method.
GblOpaqueFreeFn pFnFree
Free method.