An object factory, once a class is registered with the factory it can be used to create instances of registered classes.
More...
#include <ObjectFactory.h>
|
template<typename Derived > |
bool | registerClass (const std::string &className) |
| Register a class with the factory. More...
|
|
std::shared_ptr< Base > | create (const std::string &className, const Parameter1 &val) |
| Create an instance of a class based on the specific class name, whose constructor takes 1 parameter. More...
|
|
bool | isRegistered (const std::string &className) const |
| Check whether the class is registered in the factory. More...
|
|
template<typename Base, typename Parameter1>
class SurgSim::Framework::ObjectFactory1< Base, Parameter1 >
An object factory, once a class is registered with the factory it can be used to create instances of registered classes.
All the classes registered need to have a one parameter constructor, the type for that parameter can be passed as a template parameter.
- Note
- The names used for registration and the actual c++ class names are independent the className parameter here is just an identifier for the class.
- Template Parameters
-
Base | The base class for all classes that can be registered with the factory. |
Parameter1 | The class for the constructor parameter. |
§ create()
template<typename Base , typename Parameter1>
Create an instance of a class based on the specific class name, whose constructor takes 1 parameter.
- Parameters
-
className | The class name. |
val | The value of the parameter. |
- Returns
- a shared pointer to the object of type className instantiated with the given parameter, fails with an assertion otherwise.
§ isRegistered()
template<typename Base , typename Parameter1 >
Check whether the class is registered in the factory.
- Parameters
-
className | Name of the class to check. |
- Returns
- true if the factory has a constructor for this class
§ registerClass()
template<typename Base , typename Parameter1 >
template<typename Derived >
Register a class with the factory.
- Template Parameters
-
T | The specific type of the class to be registered. |
- Parameters
-
className | The name of this class. |
- Returns
- true if the class was added, false if it already existed in the registry.
The documentation for this class was generated from the following files: