#include "dmtool/DMObject.hpp"
#include "libecs.hpp"
Include dependency graph for PropertiedClass.hpp:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Namespaces | |
namespace | libecs |
Classes | |
class | libecs::PropertiedClass |
Common base class for classes with PropertySlots. More... | |
Defines | |
#define | LIBECS_DM_CLASS(CLASSNAME, BASE) |
#define | LIBECS_DM_OBJECT_ABSTRACT(CLASSNAME) |
#define | LIBECS_DM_OBJECT(CLASSNAME, DMTYPE) |
#define | LIBECS_DM_BASECLASS(CLASSNAME) DM_BASECLASS( CLASSNAME ) |
#define | LIBECS_DM_INIT(CLASSNAME, DMTYPE) |
#define | LIBECS_DM_INIT_STATIC(CLASSNAME, DMTYPE) |
#define | LIBECS_DM_OBJECT_DEF(CLASSNAME, DMTYPE) |
For internal use only.
| |
#define | LIBECS_DM_OBJECT_DEF_ABSTRACT(CLASSNAME) |
#define | LIBECS_DM_EXPOSE_PROPERTYINTERFACE(CLASSNAME) |
For internal use only.
| |
#define | INHERIT_PROPERTIES(BASECLASS) |
#define | CLASS_DESCRIPTION(DESCRIPTION) CLASS_INFO( "Description", DESCRIPTION ) |
#define | NOMETHOD NULLPTR |
#define | CLASSINFO_TRUE 1 |
#define | CLASSINFO_FALSE 0 |
#define | METHODFLAG(METHODPTR, NULLVALUE) METHODFLAG2( METHODPTR, NULLVALUE ) |
#define | METHODFLAG2(METHODPTR, NULLVALUE) ( # METHODPTR == # NULLVALUE ? CLASSINFO_FALSE : CLASSINFO_TRUE ) |
#define | CLASS_INFO(FIELDNAME, FIELDVALUE) PropertyInterface<TT>::setInfoField( String ( FIELDNAME ), String( FIELDVALUE ) ) |
macro for setting class Info string Info is expected as PropertyName, Value both Strings Property descriptor strings | |
#define | CLASSPROPERTY_INFO(PROPERTYNAME, TYPE, SETMETHOD, GETMETHOD, SAVEMETHOD, LOADMETHOD) |
macro for setting Property class info PropertyName, Type, set_flag, get_flag, save_flag, load_flag | |
#define | PROPERTYSLOT(TYPE, NAME, SETMETHOD, GETMETHOD) |
#define | PROPERTYSLOT_LOAD_SAVE(TYPE, NAME, SETMETHOD, GETMETHOD, LOADMETHOD, SAVEMETHOD) |
#define | PROPERTYSLOT_NO_LOAD_SAVE(TYPE, NAME, SETMETHOD, GETMETHOD) |
#define | PROPERTYSLOT_SET_GET(TYPE, NAME) |
#define | PROPERTYSLOT_SET(TYPE, NAME) |
#define | PROPERTYSLOT_GET(TYPE, NAME) |
#define | PROPERTYSLOT_SET_GET_NO_LOAD_SAVE(TYPE, NAME) |
#define | PROPERTYSLOT_SET_NO_LOAD_SAVE(TYPE, NAME) |
#define | PROPERTYSLOT_GET_NO_LOAD_SAVE(TYPE, NAME) |
#define | LIBECS_DM_DEFINE_PROPERTIES() |
For internal use only.
| |
#define | SET_SLOT(TYPE, METHODNAME) void METHODNAME( libecs::Param<TYPE>::type value ) |
#define | GET_SLOT(TYPE, METHODNAME) const TYPE METHODNAME() const |
#define | SET_SLOT_DEF(TYPE, METHODNAME, CLASS) SET_SLOT( TYPE, CLASS::METHODNAME ) |
#define | GET_SLOT_DEF(TYPE, METHODNAME, CLASS) GET_SLOT( TYPE, CLASS::METHODNAME ) |
#define | SET_METHOD(TYPE, NAME) SET_SLOT( TYPE, set ## NAME ) |
#define | GET_METHOD(TYPE, NAME) GET_SLOT( TYPE, get ## NAME ) |
#define | LOAD_METHOD(TYPE, NAME) SET_SLOT( TYPE, load ## NAME ) |
#define | SAVE_METHOD(TYPE, NAME) GET_SLOT( TYPE, save ## NAME ) |
#define | SET_METHOD_DEF(TYPE, NAME, CLASS) SET_SLOT_DEF( TYPE, set ## NAME, CLASS ) |
#define | GET_METHOD_DEF(TYPE, NAME, CLASS) GET_SLOT_DEF( TYPE, get ## NAME, CLASS ) |
#define | LOAD_METHOD_DEF(TYPE, NAME, CLASS) SET_SLOT_DEF( TYPE, load ## NAME, CLASS ) |
#define | SAVE_METHOD_DEF(TYPE, NAME, CLASS) GET_SLOT_DEF( TYPE, save ## NAME, CLASS ) |
#define | SIMPLE_GET_METHOD(TYPE, NAME) |
#define | SIMPLE_SET_METHOD(TYPE, NAME) |
#define | SIMPLE_SET_GET_METHOD(TYPE, NAME) |
#define | NULLSET_SPECIALIZATION(TYPE) template <> ECELL_API void PropertiedClass::nullSet<TYPE>( Param<TYPE>::type ) |
#define | NULLGET_SPECIALIZATION(TYPE) template <> ECELL_API const TYPE PropertiedClass::nullGet<TYPE>() const |
Functions | |
libecs::NULLSET_SPECIALIZATION (Real) | |
libecs::NULLSET_SPECIALIZATION (Integer) | |
libecs::NULLSET_SPECIALIZATION (String) | |
libecs::NULLSET_SPECIALIZATION (Polymorph) | |
libecs::NULLGET_SPECIALIZATION (Real) | |
libecs::NULLGET_SPECIALIZATION (Integer) | |
libecs::NULLGET_SPECIALIZATION (String) | |
libecs::NULLGET_SPECIALIZATION (Polymorph) |
#define CLASSPROPERTY_INFO | ( | PROPERTYNAME, | |||
TYPE, | |||||
SETMETHOD, | |||||
GETMETHOD, | |||||
SAVEMETHOD, | |||||
LOADMETHOD | ) |
Value:
PropertyInterface<TT>::setPropertyInfoField( String( PROPERTYNAME ), String( TYPE ), \ METHODFLAG(SETMETHOD, NULLPTR ), METHODFLAG( GETMETHOD, NULLPTR ), \ METHODFLAG( SAVEMETHOD, NULLPTR ), METHODFLAG( LOADMETHOD, NULLPTR ) )
#define INHERIT_PROPERTIES | ( | BASECLASS | ) |
Value:
BASECLASS::initializePropertyInterface( Type2Type<TT>() );\ CLASS_INFO( "Baseclass", # BASECLASS )
#define LIBECS_DM_CLASS | ( | CLASSNAME, | |||
BASE | ) |
Value:
DECLARE_CLASS( CLASSNAME );\ class CLASSNAME\ :\ public BASE
#define LIBECS_DM_DEFINE_PROPERTIES | ( | ) |
Value:
template<class TT>\ static void initializePropertyInterface( Type2Type<TT> )
For internal use only.
#define LIBECS_DM_INIT | ( | CLASSNAME, | |||
DMTYPE | ) |
Value:
DM_INIT( CLASSNAME, DMTYPE )\ LIBECS_DM_INIT_STATIC( CLASSNAME, DMTYPE )
#define LIBECS_DM_INIT_STATIC | ( | CLASSNAME, | |||
DMTYPE | ) |
Value:
template class PropertyInterface<CLASSNAME>;\ libecs::PropertyInterface<CLASSNAME> CLASSNAME::thePropertyInterface
#define LIBECS_DM_OBJECT | ( | CLASSNAME, | |||
DMTYPE | ) |
Value:
DM_OBJECT( CLASSNAME, DMTYPE );\ LIBECS_DM_OBJECT_DEF( CLASSNAME, DMTYPE );\ LIBECS_DM_EXPOSE_PROPERTYINTERFACE( CLASSNAME );\ LIBECS_DM_DEFINE_PROPERTIES()
#define LIBECS_DM_OBJECT_ABSTRACT | ( | CLASSNAME | ) |
Value:
LIBECS_DM_OBJECT_DEF_ABSTRACT( CLASSNAME );\ LIBECS_DM_EXPOSE_PROPERTYINTERFACE( CLASSNAME );\ LIBECS_DM_DEFINE_PROPERTIES()
#define LIBECS_DM_OBJECT_DEF | ( | CLASSNAME, | |||
DMTYPE | ) |
Value:
typedef DMTYPE _LIBECS_DMTYPE_;\
LIBECS_DM_OBJECT_DEF_ABSTRACT( CLASSNAME )
For internal use only.
#define LIBECS_DM_OBJECT_DEF_ABSTRACT | ( | CLASSNAME | ) |
Value:
typedef CLASSNAME _LIBECS_CLASS_;\ virtual StringLiteral getClassName() const { return XSTR( CLASSNAME ); }
#define PROPERTYSLOT | ( | TYPE, | |||
NAME, | |||||
SETMETHOD, | |||||
GETMETHOD | ) |
Value:
PropertyInterface<TT>::registerPropertySlot( # NAME,\ new ConcretePropertySlot<TT,TYPE>( SETMETHOD, GETMETHOD ) );\ CLASSPROPERTY_INFO( # NAME, # TYPE, SETMETHOD, GETMETHOD, SETMETHOD, GETMETHOD )
#define PROPERTYSLOT_GET | ( | TYPE, | |||
NAME | ) |
Value:
PROPERTYSLOT( TYPE, NAME,\ NULLPTR,\ & _LIBECS_CLASS_::get ## NAME )
#define PROPERTYSLOT_GET_NO_LOAD_SAVE | ( | TYPE, | |||
NAME | ) |
Value:
PROPERTYSLOT_NO_LOAD_SAVE( TYPE, NAME,\ NULLPTR,\ & _LIBECS_CLASS_::get ## NAME )
#define PROPERTYSLOT_LOAD_SAVE | ( | TYPE, | |||
NAME, | |||||
SETMETHOD, | |||||
GETMETHOD, | |||||
LOADMETHOD, | |||||
SAVEMETHOD | ) |
Value:
PropertyInterface<TT>::registerPropertySlot( # NAME,\ new LoadSaveConcretePropertySlot<TT,TYPE>( SETMETHOD, GETMETHOD,\ LOADMETHOD, SAVEMETHOD ) );\ CLASSPROPERTY_INFO( # NAME, # TYPE, SETMETHOD, GETMETHOD, SAVEMETHOD, LOADMETHOD )
#define PROPERTYSLOT_NO_LOAD_SAVE | ( | TYPE, | |||
NAME, | |||||
SETMETHOD, | |||||
GETMETHOD | ) |
Value:
PROPERTYSLOT_LOAD_SAVE( TYPE, NAME, SETMETHOD, GETMETHOD,\ NULLPTR, NULLPTR )
#define PROPERTYSLOT_SET | ( | TYPE, | |||
NAME | ) |
Value:
PROPERTYSLOT( TYPE, NAME,\ & _LIBECS_CLASS_::set ## NAME,\ NULLPTR )
#define PROPERTYSLOT_SET_GET | ( | TYPE, | |||
NAME | ) |
Value:
PROPERTYSLOT( TYPE, NAME,\ & _LIBECS_CLASS_::set ## NAME,\ & _LIBECS_CLASS_::get ## NAME )
#define PROPERTYSLOT_SET_GET_NO_LOAD_SAVE | ( | TYPE, | |||
NAME | ) |
Value:
PROPERTYSLOT_NO_LOAD_SAVE( TYPE, NAME,\ & _LIBECS_CLASS_::set ## NAME,\ & _LIBECS_CLASS_::get ## NAME )
#define PROPERTYSLOT_SET_NO_LOAD_SAVE | ( | TYPE, | |||
NAME | ) |
Value:
PROPERTYSLOT_NO_LOAD_SAVE( TYPE, NAME,\ & _LIBECS_CLASS_::set ## NAME,\ NULLPTR )
#define SIMPLE_GET_METHOD | ( | TYPE, | |||
NAME | ) |
Value:
GET_METHOD( TYPE, NAME )\
{\
return NAME;\
}
#define SIMPLE_SET_GET_METHOD | ( | TYPE, | |||
NAME | ) |
Value:
SIMPLE_SET_METHOD( TYPE, NAME )\ SIMPLE_GET_METHOD( TYPE, NAME )
#define SIMPLE_SET_METHOD | ( | TYPE, | |||
NAME | ) |
Value:
SET_METHOD( TYPE, NAME )\ {\ NAME = value;\ }