23 #ifndef _FIELD_ELEMENT_FINFO_H
24 #define _FIELD_ELEMENT_FINFO_H
32 const Cinfo* fieldCinfo,
60 const string& arg )
const
66 string& returnValue )
const
82 unsigned int fieldIndex )
const = 0;
85 virtual void setNumField(
char* parent,
unsigned int num )
89 virtual unsigned int getNumField(
const char* parent )
103 template <
class T,
class F >
110 const Cinfo* fieldCinfo,
121 string setname =
"setNum" +
name;
122 setname[6] = std::toupper( setname[6] );
130 "Assigns number of field entries in field array.",
133 string getname =
"getNum" +
name;
134 getname[6] = std::toupper( getname[6] );
137 "Requests number of field entries in field array."
138 "The requesting Element must "
139 "provide a handler for the returned value.",
150 T* pa =
reinterpret_cast< T*
>( parent );
154 return reinterpret_cast< char*
>( self );
162 T* pa =
reinterpret_cast< T*
>( parent );
169 const T* pa =
reinterpret_cast< const T*
>( parent );
187 #endif // _FIELD_ELEMENT_FINFO_H
bool strSet(const Eref &tgt, const string &field, const string &arg) const
string rttiType() const
Virtual function to look up type of FieldElementFinfo.
virtual void setNumField(char *parent, unsigned int num) const =0
virtual func to resize Field array, using char* for parent
const string & name() const
virtual unsigned int getNumField(const char *parent) const =0
virtual func to get size of Field array, using char* for parent
unsigned int getNumField(const char *parent) const
virtual func to get size of Field array, using char* for parent
FieldElementFinfo(const string &name, const string &doc, const Cinfo *fieldCinfo, F *(T::*lookupField)(unsigned int), void(T::*setNumField)(unsigned int num), unsigned int(T::*getNumField)() const, bool deferCreate=0)
char * lookupField(char *parent, unsigned int fieldIndex) const
void registerFinfo(Finfo *f)
const Cinfo * fieldCinfo_
bool strGet(const Eref &tgt, const string &field, string &returnValue) const
void registerFinfo(Cinfo *c)
void postCreationFunc(Id parent, Element *parentElm) const
void(T::* setNumField_)(unsigned int num)
virtual ~FieldElementFinfoBase()
F *(T::* lookupField_)(unsigned int)
void registerPostCreationFinfo(const Finfo *f)
void setNumField(char *parent, unsigned int num) const
virtual func to resize Field array, using char* for parent
FieldElementFinfoBase(const string &name, const string &doc, const Cinfo *fieldCinfo, bool deferCreate)
unsigned int(T::* getNumField_)() const
virtual char * lookupField(char *parent, unsigned int fieldIndex) const =0