7
8
9
10
11
12
14#include <gimbal/gimbal_meta.h>
15#include <gimbal/utils/gimbal_byte_array.h>
18
19
20
21
22#define GUM_IRESOURCE_TYPE (GBL_TYPEID (GUM_IResource))
23#define GUM_IRESOURCE(instance) (GBL_CAST (GUM_IResource, instance))
24#define GUM_IRESOURCE_CLASS(klass) (GBL_CLASS_CAST (GUM_IResource, klass))
25#define GUM_IRESOURCE_CLASSOF(instance) (GBL_CLASSOF (GUM_IResource, instance))
28#define GBL_SELF_TYPE GUM_IResource
31GBL_FORWARD_DECLARE_STRUCT(GUM_IResource);
35
36
37
38
39
41GBL_INTERFACE_DERIVE(GUM_IResource)
42 GBL_RESULT (*pFnLoad) (GBL_SELF, GblStringRef *path);
43 GBL_RESULT (*pFnUnload) (GBL_SELF);
44 void* (*pFnValue) (GBL_CSELF);
45 GBL_RESULT (*pFnSetValue) (GBL_SELF,
void *pValue);
46 GBL_RESULT (*pFnQuark) (GBL_CSELF, GblQuark *quark);
47 GBL_RESULT (*pFnSetQuark) (GBL_SELF, GblQuark quark);
50GblType GUM_IResource_type(
void);
54GBL_EXPORT GUM_IResource *GUM_IResource_ref (GBL_SELF) GBL_NOEXCEPT;
56GBL_EXPORT GblRefCount GUM_IResource_unref (GBL_SELF) GBL_NOEXCEPT;
58GBL_EXPORT
void *GUM_IResource_data (GBL_CSELF) GBL_NOEXCEPT;
60GBL_EXPORT
void GUM_IResource_setData (GBL_SELF,
void *pValue) GBL_NOEXCEPT;