2 #include "IAttributeFields.h" 3 #include "ObjectFactory.h" 4 #include "unordered_ref_array.h" 18 CAttributeClass* GetAttributeClassByName(
const std::string& sClassName);
45 ATTRIBUTE_METHOD(
CAttributesManager, PrintManual_s){cls->PrintManual(
"attr_manual.txt");
return S_OK;}
47 map<int, CAttributeClass*> m_classes;
48 map<std::string, CAttributeClass*> m_classNames;
49 map<std::string, CObjectFactory*> m_factory_map;
virtual const char * GetAttributeClassName()
a static string, describing the attribute class object's name
Definition: AttributesManager.h:39
for a single attribute field
Definition: AttributeField.h:19
void AddAttributeClass(int nClassID, CAttributeClass *pClass)
nClassID must not exist prior to calling this function.
Definition: AttributesManager.cpp:51
an attribute class is a collection of attribute fields.
Definition: AttributeClass.h:10
virtual int InstallFields(CAttributeClass *pClass, bool bOverride)
this class should be implemented if one wants to add new attribute.
Definition: AttributesManager.cpp:34
different physics engine has different winding order.
Definition: EventBinding.h:32
a central place for managing all attributes of all classes in ParaEngine.
Definition: AttributesManager.h:9
the virtual factory class for dynamically registered object class instantiation.
Definition: ObjectFactory.h:8
virtual int GetAttributeClassID()
attribute class ID should be identical, unless one knows how overriding rules work.
Definition: AttributesManager.h:37
similar to unordered array except that it will automatically call addref/Release when obj is added/re...
Definition: unordered_ref_array.h:12
A common interface for all classes implementing IAttributeFields By implementing this class's virtual...
Definition: IAttributeFields.h:59
it presents a real or virtual file in ParaEngine.
Definition: ParaFile.h:31
virtual const char * GetAttributeClassDescription()
a static string, describing the attribute class object
Definition: AttributesManager.h:41
void PrintManual(const string &filepath)
print the manual of all classes in the manager to a text file.
Definition: AttributesManager.cpp:112
void PrintObject()
print the content of this object to a text file at temp/doc/[ClassName].txt.
Definition: IAttributeFields.cpp:115
bool RegisterObjectFactory(const std::string &sClassName, CObjectFactory *pObjectFactory)
register a factory class for creating object.
Definition: AttributesManager.cpp:90
CAttributeClass * GetAttributeClassByID(int nClassID)
Get attribute class object by ID, return NULL if it does not exists.
Definition: AttributesManager.cpp:60
IAttributeFields * CreateObject(const std::string &sClassName)
try to create object using registered factory attribute class or factory class
Definition: AttributesManager.cpp:72