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: