25 #include <elm/string.h>
26 #include <elm/types.h>
38 inline int value(
void)
const {
return _value; }
53 inline V&
value(
void)
const {
return _value; };
67 :
Field<T>(name, value), def(_default) { }
77 #define ELM_ENUM(type) \
79 template <> struct type_info<type>: public enum_t { \
80 static value_t __vals[]; \
81 static inline CString name(void) { return "<enum " #type ">"; } \
82 static inline value_t *values(void) { return __vals; } \
85 #define ELM_ENUM_BEGIN(type) \
87 struct value_t type_info<type>::__vals[] = {
88 #define ELM_ENUM_END \
92 #define ELM_VALUE(name) elm::value(elm::_unqualify(#name), name)
94 #ifndef ELM_NO_SHORTCUT
95 # define ENUM(type) ELM_ENUM(type)
96 # define VALUE(name) ELM_VALUE(name)
97 # define ENUM_BEGIN(type) ELM_ENUM_BEGIN(type)
98 # define ENUM_END ELM_ENUM_END
108 : _name(name), _base(
base) { };
CString substring(int pos) const
Definition: string.h:19
const T & defaultValue(void) const
Definition: rtti.h:68
int value(void) const
Definition: rtti.h:38
static value_t end(void)
Definition: rtti.h:35
AbstractClass * base(void) const
Definition: rtti.h:111
DefaultField(CString name, T &value, const T &_default)
Definition: rtti.h:66
value_t(CString name, int value)
Definition: rtti.h:36
Field(CString name, V &value)
Definition: rtti.h:51
value_t value(CString name, int value)
Definition: rtti.h:40
int lastIndexOf(char chr) const
Definition: CString.h:45
Class(CString name, AbstractClass *base=0)
Definition: rtti.h:121
CString name(void) const
Definition: rtti.h:110
bool baseOf(AbstractClass *clazz)
Definition: type_info.cpp:241
Field< T > field(CString name, T &value)
Definition: rtti.h:56
CString name(void) const
Definition: rtti.h:37
virtual void * instantiate(void)
Definition: rtti.h:123
CString name(void) const
Definition: rtti.h:52
V & value(void) const
Definition: rtti.h:53
CString _unqualify(CString name)
Definition: rtti.h:128
AbstractClass(CString name, AbstractClass *base=0)
Definition: rtti.h:107
virtual ~AbstractClass(void)
Definition: rtti.h:109
virtual void * instantiate(void)=0