A MetaCategory instance represents metadata for a category of object. More...
#include <utils.h>
Public Types | |
typedef map< hashtype, const MetaCategory *, less< hashtype > > | CategoryMap |
typedef map< hashtype, const MetaClass *, less< hashtype > > | ClassMap |
typedef Object *(* | readController )(const MetaClass *, const AttributeList &) |
typedef void(* | writeController )(const MetaCategory *, XMLOutput *o) |
Public Member Functions | |
const MetaClass * | findClass (const hashtype) const |
const MetaClass * | findClass (const char *) const |
MetaCategory (const string &t, const string &g, readController=NULL, writeController=NULL) | |
virtual | ~MetaCategory () |
Static Public Member Functions | |
static Object * | ControllerDefault (const MetaClass *, const AttributeList &) |
static const MetaCategory * | findCategoryByGroupTag (const hashtype) |
static const MetaCategory * | findCategoryByGroupTag (const char *) |
static const MetaCategory * | findCategoryByTag (const hashtype) |
static const MetaCategory * | findCategoryByTag (const char *) |
static void | persist (XMLOutput *) |
Public Attributes | |
string | group |
const Keyword * | grouptag |
readController | readFunction |
Friends | |
class | HasName |
class | MetaClass |
A MetaCategory instance represents metadata for a category of object.
A MetaClass instance represents metadata for a specific instance type. For instance, 'Resource' is a category while 'ResourceDefault' and 'ResourceInfinite' are specific classes.
A category has the following specific pieces of data:
Definition at line 1383 of file utils.h.
typedef map< hashtype, const MetaCategory*, less<hashtype> > frepple::utils::MetaCategory::CategoryMap |
typedef map< hashtype, const MetaClass*, less<hashtype> > frepple::utils::MetaCategory::ClassMap |
typedef Object*(* frepple::utils::MetaCategory::readController)(const MetaClass *, const AttributeList &) |
typedef void(* frepple::utils::MetaCategory::writeController)(const MetaCategory *, XMLOutput *o) |
virtual frepple::utils::MetaCategory::~MetaCategory | ( | ) | [inline, virtual] |
frepple::utils::MetaCategory::MetaCategory | ( | const string & | t, | |
const string & | g, | |||
readController | f = NULL , |
|||
writeController | w = NULL | |||
) |
Constructor.
Definition at line 248 of file utils/library.cpp.
Object * frepple::utils::MetaCategory::ControllerDefault | ( | const MetaClass * | cat, | |
const AttributeList & | in | |||
) | [static] |
This template method is available as a object creation factory for classes without key fields and which rely on a default constructor.
Definition at line 405 of file utils/library.cpp.
const MetaCategory * frepple::utils::MetaCategory::findCategoryByGroupTag | ( | const hashtype | h | ) | [static] |
Looks up a category name in the registry. If the category can't be located the return value is NULL.
Definition at line 300 of file utils/library.cpp.
const MetaCategory * frepple::utils::MetaCategory::findCategoryByGroupTag | ( | const char * | c | ) | [static] |
Looks up a category name in the registry. If the catgory can't be located the return value is NULL.
Definition at line 292 of file utils/library.cpp.
const MetaCategory * frepple::utils::MetaCategory::findCategoryByTag | ( | const hashtype | h | ) | [static] |
Looks up a category name in the registry. If the catgory can't be located the return value is NULL.
Definition at line 284 of file utils/library.cpp.
const MetaCategory * frepple::utils::MetaCategory::findCategoryByTag | ( | const char * | c | ) | [static] |
Looks up a category name in the registry. If the catgory can't be located the return value is NULL.
Definition at line 276 of file utils/library.cpp.
Find a class in this category with a specified name.
If the catrgory can't be found the return value is NULL.
Definition at line 316 of file utils/library.cpp.
const MetaClass * frepple::utils::MetaCategory::findClass | ( | const char * | c | ) | const |
Find a class in this category with a specified name.
If the catrgory can't be found the return value is NULL.
Definition at line 308 of file utils/library.cpp.
void frepple::utils::MetaCategory::persist | ( | XMLOutput * | o | ) | [static] |
This method takes care of the persistence of all categories. It loops through all registered categories (in the order of their registration) and calls the persistance handler.
Definition at line 324 of file utils/library.cpp.