#include "Assert.hxx"
#include "TypeInfoStd.hxx"
#include "StaticBool.hxx"
Go to the source code of this file.
Defines | |
#define | __COMMON_DYNAMIC_TYPE(CLASS_NAME, N) |
#define | DYNAMIC_TYPE(CLASS_NAME, N) |
#define | DYNAMIC_TYPE_USING_INTERFACE(CLASS_NAME, N, INTERFACE_NAME) |
#define | __COMMON_DYN_ATTRIBUTE(N, ACCESS, TYPE, NAME) |
#define | DYN_ATTRIBUTE(N, ACCESS, TYPE, NAME) |
#define | DYN_CONTAINER_ATTRIBUTE(N, ACCESS, TYPE, NAME, ENAME) |
#define __COMMON_DYN_ATTRIBUTE | ( | N, | |||
ACCESS, | |||||
TYPE, | |||||
NAME | ) |
Definition at line 211 of file DynamicTypeMacros.hxx.
#define __COMMON_DYNAMIC_TYPE | ( | CLASS_NAME, | |||
N | ) |
Definition at line 39 of file DynamicTypeMacros.hxx.
#define DYN_ATTRIBUTE | ( | N, | |||
ACCESS, | |||||
TYPE, | |||||
NAME | ) |
Value:
__COMMON_DYN_ATTRIBUTE(N,ACCESS,TYPE,NAME) \ protected: \ void Store##NAME(CLAM::Storage & s) const { \ if (Has##NAME()) { \ StoreAttribute((CLAM::TypeInfo<TYPE >::StorableAsLeaf*)NULL, s, Get##NAME(), #NAME); \ } \ } \ bool Load##NAME(CLAM::Storage & s) { \ TYPE obj; \ if (!LoadAttribute((CLAM::TypeInfo<TYPE >::StorableAsLeaf*)NULL, s, obj, #NAME)) { \ Remove##NAME(); \ return false; \ } \ Set##NAME(obj); \ return true; \ } \ ACCESS: \
Definition at line 317 of file DynamicTypeMacros.hxx.
#define DYN_CONTAINER_ATTRIBUTE | ( | N, | |||
ACCESS, | |||||
TYPE, | |||||
NAME, | |||||
ENAME | ) |
Value:
__COMMON_DYN_ATTRIBUTE(N,ACCESS,TYPE,NAME) \ protected: \ void Store##NAME(CLAM::Storage & s) const { \ if (Has##NAME()) { \ StoreIterableAttribute(s, Get##NAME(), #NAME, #ENAME); \ } \ } \ bool Load##NAME(CLAM::Storage & s) { \ Add##NAME(); \ UpdateData(); \ if (! LoadIterableAttribute(s, Get##NAME(), #NAME, #ENAME)) { \ Remove##NAME(); \ return false; \ } \ return true; \ } \ ACCESS: \
Definition at line 337 of file DynamicTypeMacros.hxx.
#define DYNAMIC_TYPE | ( | CLASS_NAME, | |||
N | ) |
Value:
public: \ CLASS_NAME() : CLAM::DynamicType(N)\ {\ MandatoryInit(); \ DefaultInit();\ }\ CLASS_NAME(const CLASS_NAME& prototype, const bool shareData=false, const bool deep=true)\ : CLAM::DynamicType(prototype, shareData, deep) { \ CopyInit(prototype);\ }\ __COMMON_DYNAMIC_TYPE(CLASS_NAME,N); \
Definition at line 183 of file DynamicTypeMacros.hxx.
#define DYNAMIC_TYPE_USING_INTERFACE | ( | CLASS_NAME, | |||
N, | |||||
INTERFACE_NAME | ) |
Value:
public: \ CLASS_NAME() : INTERFACE_NAME(N)\ {\ MandatoryInit(); \ DefaultInit();\ }\ CLASS_NAME(const CLASS_NAME& prototype, const bool shareData=false, const bool deep=true)\ : INTERFACE_NAME(prototype, shareData, deep) { \ CopyInit(prototype); \ }\ __COMMON_DYNAMIC_TYPE(CLASS_NAME,N); \
Definition at line 197 of file DynamicTypeMacros.hxx.