|
CX Framework
Cross-platform C utility framework
|
Class definitions and instance management for the object system. More...
#include <cx/obj/objiface.h>#include <cx/container/hashtable.h>#include <cx/thread/atomic.h>#include <cx/utils/macros/unused.h>#include <cx/thread/rwlock.h>Go to the source code of this file.
Data Structures | |
| struct | ObjClassInfo |
| struct | ObjInst |
| struct | ObjInst_WeakRef |
Macros | |
| #define | objClassInfoName(cname) cname##_clsinfo |
| #define | Weak(clsname) clsname##_WeakRef |
| #define | ObjInst(inst) ((ObjInst*)(unused_noeval(&((inst)->_is_ObjInst)), (inst))) |
| #define | ObjInst_WeakRef(ref) ((ObjInst_WeakRef*)(unused_noeval(&((ref)->_is_ObjInst_WeakRef)), (ref))) |
| #define | objInstBase(inst) ObjInst(inst) |
| #define | objWeakRefBase(ref) ObjInst_WeakRef(ref) |
| #define | objClsInfo(inst) (inst->_clsinfo) |
| #define | objAcquire(inst) (_objAcquire(objInstBase(inst)), (inst)) |
| #define | objRelease(pinst) (unused_noeval(&((*(pinst))->_is_ObjInst)), _objRelease((ObjInst**)(pinst))) |
| #define | objClassIf(clsname, ifname) ((ifname*)_objClassIf(&objClassInfoName(clsname), objIfBase(&objIfTmplName(ifname)))) |
| #define | objInstIf(inst, ifname) ((ifname*)_objInstIf(objInstBase(inst), objIfBase(&objIfTmplName(ifname)))) |
| #define | objGetWeak(clsname, inst) ((Weak(clsname)*)_objGetWeak((ObjInst*)clsname(inst))) |
| #define | objCloneWeak(ref) (_objCloneWeak(objWeakRefBase(ref))) |
| #define | objDestroyWeak(pref) (unused_noeval(&((*(pref))->_is_ObjInst_WeakRef)), _objDestroyWeak((ObjInst_WeakRef**)(pref))) |
| #define | objAcquireFromWeak(clsname, ref) ((clsname*)_objAcquireFromWeak((ObjInst_WeakRef*)Weak(clsname)(ref))) |
| #define | objDynCast(clsname, inst) ((clsname*)_objDynCast(objInstBase(inst), &objClassInfoName(clsname))) |
| #define | objAcquireFromWeakDyn(clsname, ref) ((clsname*)_objAcquireFromWeakDyn(objWeakRefBase(ref), &objClassInfoName(clsname))) |
Typedefs | |
| typedef struct ObjClassInfo | ObjClassInfo |
| typedef struct ObjInst | ObjInst |
| typedef struct ObjInst_WeakRef | ObjInst_WeakRef |
Functions | |
| void | _objDestroy (ObjInst *inst) |
Class definitions and instance management for the object system.
Definition in file objclass.h.