Orxonox: orxonox::ClassIdentifier< T > Class Template Reference

# 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 >:

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:

- src/core/Identifier.h