orxonox::ClassIdentifier< T > Class Template Reference

The ClassIdentifier is derived from Identifier and holds all class-specific functions and variables the Identifier cannot have. More...

#include <src/core/Identifier.h>

Inheritance diagram for orxonox::ClassIdentifier< T >:

orxonox::Identifier

List of all members.

Public Member Functions

void addObject (T *object)
 Adds an object of the given type to the ObjectList.
 SUPER_INTRUSIVE_DECLARATION (changedGametype)
 SUPER_INTRUSIVE_DECLARATION (changedName)
 SUPER_INTRUSIVE_DECLARATION (changedOverlayGroup)
 SUPER_INTRUSIVE_DECLARATION (changedOwner)
 SUPER_INTRUSIVE_DECLARATION (changedMainState)
 SUPER_INTRUSIVE_DECLARATION (changedScale)
 SUPER_INTRUSIVE_DECLARATION (processEvent)
 SUPER_INTRUSIVE_DECLARATION (changedVisibility)
 SUPER_INTRUSIVE_DECLARATION (changedActivity)
 SUPER_INTRUSIVE_DECLARATION (tick)
 SUPER_INTRUSIVE_DECLARATION (XMLPort)
void updateConfigValues (bool updateChildren=true) const
 Updates the config-values of all existing objects of this class by calling their setConfigValues() function.

Static Public Member Functions

static ClassIdentifier< T > * getIdentifier (const std::string &name)
 Does the same as getIdentifier() but sets the name if this wasn't done yet.
static ClassIdentifier< T > * getIdentifier ()
 Returns the only instance of this class.

Private Member Functions

 ClassIdentifier ()
 ClassIdentifier (const ClassIdentifier< T > &identifier)
virtual void createSuperFunctionCaller () const
 ~ClassIdentifier ()

Static Private Member Functions

static void initialiseIdentifier ()
 Assigns the static field for the identifier singleton.

Static Private Attributes

static ClassIdentifier< T > * classIdentifier_s = 0

Friends

struct SuperFunctionCondition


Detailed Description

template<class T>
class orxonox::ClassIdentifier< T >

The ClassIdentifier is derived from Identifier and holds all class-specific functions and variables the Identifier cannot have.

ClassIdentifier is a Singleton, which means that only one object of a given type T exists. This makes it possible to store informations about a class, sharing them with all objects of that class without defining static variables in every class.

To be really sure that not more than exactly one object exists (even with libraries), ClassIdentifiers are stored in the Identifier Singleton.


Constructor & Destructor Documentation

template<class T>
orxonox::ClassIdentifier< T >::ClassIdentifier ( const ClassIdentifier< T > &  identifier  )  [inline, private]

template<class T>
orxonox::ClassIdentifier< T >::ClassIdentifier (  )  [inline, private]

template<class T>
orxonox::ClassIdentifier< T >::~ClassIdentifier (  )  [inline, private]


Member Function Documentation

template<class T>
void orxonox::ClassIdentifier< T >::addObject ( T *  object  )  [inline]

Adds an object of the given type to the ObjectList.

Parameters:
object The object to add

template<class T>
virtual void orxonox::ClassIdentifier< T >::createSuperFunctionCaller (  )  const [inline, private, virtual]

Implements orxonox::Identifier.

template<class T>
ClassIdentifier< T > * orxonox::ClassIdentifier< T >::getIdentifier ( const std::string name  )  [inline, static]

Does the same as getIdentifier() but sets the name if this wasn't done yet.

Parameters:
name The name of this Identifier
Returns:
The Identifier

template<class T>
ClassIdentifier< T > * orxonox::ClassIdentifier< T >::getIdentifier (  )  [inline, static]

Returns the only instance of this class.

Returns:
The unique Identifier

template<class T>
void orxonox::ClassIdentifier< T >::initialiseIdentifier (  )  [inline, static, private]

Assigns the static field for the identifier singleton.

template<class T>
orxonox::ClassIdentifier< T >::SUPER_INTRUSIVE_DECLARATION ( changedGametype   ) 

template<class T>
orxonox::ClassIdentifier< T >::SUPER_INTRUSIVE_DECLARATION ( changedName   ) 

template<class T>
orxonox::ClassIdentifier< T >::SUPER_INTRUSIVE_DECLARATION ( changedOverlayGroup   ) 

template<class T>
orxonox::ClassIdentifier< T >::SUPER_INTRUSIVE_DECLARATION ( changedOwner   ) 

template<class T>
orxonox::ClassIdentifier< T >::SUPER_INTRUSIVE_DECLARATION ( changedMainState   ) 

template<class T>
orxonox::ClassIdentifier< T >::SUPER_INTRUSIVE_DECLARATION ( changedScale   ) 

template<class T>
orxonox::ClassIdentifier< T >::SUPER_INTRUSIVE_DECLARATION ( processEvent   ) 

template<class T>
orxonox::ClassIdentifier< T >::SUPER_INTRUSIVE_DECLARATION ( changedVisibility   ) 

template<class T>
orxonox::ClassIdentifier< T >::SUPER_INTRUSIVE_DECLARATION ( changedActivity   ) 

template<class T>
orxonox::ClassIdentifier< T >::SUPER_INTRUSIVE_DECLARATION ( tick   ) 

template<class T>
orxonox::ClassIdentifier< T >::SUPER_INTRUSIVE_DECLARATION ( XMLPort   ) 

template<class T>
void orxonox::ClassIdentifier< T >::updateConfigValues ( bool  updateChildren = true  )  const [inline, virtual]

Updates the config-values of all existing objects of this class by calling their setConfigValues() function.

Implements orxonox::Identifier.


Friends And Related Function Documentation

template<class T>
friend struct SuperFunctionCondition [friend]


Member Data Documentation

template<class T>
ClassIdentifier< T > * orxonox::ClassIdentifier< T >::classIdentifier_s = 0 [inline, static, private]


The documentation for this class was generated from the following file:

Generated on Tue Jul 28 16:22:22 2009 for Orxonox by  doxygen 1.5.6