|
Stores key object pairs. More...
#include <ArmarXCore/core/util/Registrar.h>
Classes | |
struct | RegisterElement |
Registers the object passed to the constructor. More... | |
Public Types | |
using | ContainerType = std::unordered_map< KeyType, RegisteredType > |
Static Public Member Functions | |
static const RegisteredType & | get (const KeyType &key) |
Returns the registered object for the given key. More... | |
static std::vector< KeyType > | getKeys () |
Retrieves the list of all registered elements. More... | |
static bool | has (const KeyType &key) |
static void | registerElement (const KeyType &key, RegisteredType element) |
Registers an element. More... | |
Stores key object pairs.
The third template parameter offers the option to tag this registrar with a class.
If polymorphic objects are required use a base class and unique pointers. E.g.:
If functions are stored use std::function (or function pointers).
To register elements on file inclusion use this code in the header (note the missing static).
Example for strings
Definition at line 62 of file Registrar.h.
using ContainerType = std::unordered_map<KeyType, RegisteredType> |
Definition at line 65 of file Registrar.h.
|
inlinestatic |
Returns the registered object for the given key.
key | The object's key. |
Definition at line 84 of file Registrar.h.
|
inlinestatic |
Retrieves the list of all registered elements.
Definition at line 115 of file Registrar.h.
|
inlinestatic |
|
inlinestatic |
Registers an element.
key | The element's key. |
element | The element. |
Definition at line 105 of file Registrar.h.