Version 2 (modified by landauf, 17 years ago) (diff) |
---|
ClassIdentifier
Description
The ClassIdentifier is a template, inherited from Identifier, containing all class-specific functions for the class represented by the Identifier. In fact this is only the ObjectList.
The constructor of ClassIdentifier is private. Only IdentifierDistributor? is allowed to create and distribute new instances. (In fact only one instance per template-class. This is very important.)
You can't access the ClassIdentifier of a class directly. Use ClassManager?<ClassName>::getIdentifier() instead.
The macro Class(classname) (include CoreIncludes.h to use it) returns the ClassIdentifier of the given class. In fact this is only an abbreviation of ClassManager<ClassName>::getIdentifier().
Every class that uses the RegisterObject(classname) or RegisterRootObject(interfacename) macro (see CoreIncludes) is represented by an Identifier, that stores all objects of this class (and of all inherited classes) in a ObjectList. The object gets removed from the list if it gets deleted. This is handled by the destructor of OrxonoxClass and the MetaObjectList.
You can iterate through all objects in a ObjectList by using an Iterator. Read the related Wiki-page to get more informations.