Factory template class.
More...
#include <Factory.h>
template<class AbstractClass, typename Identifier = std::string, typename Compare = std::less<Identifier>, typename Creator = AbstractClass* (*)(), typename Destructor = void (*)(AbstractClass*&)>
class coil::Factory< AbstractClass, Identifier, Compare, Creator, Destructor >
Factory template class.
◆ FactoryMap
template<class AbstractClass , typename Identifier = std::string, typename Compare = std::less<Identifier>, typename Creator = AbstractClass* (*)(), typename Destructor = void (*)(AbstractClass*&)>
◆ FactoryMapIt
template<class AbstractClass , typename Identifier = std::string, typename Compare = std::less<Identifier>, typename Creator = AbstractClass* (*)(), typename Destructor = void (*)(AbstractClass*&)>
◆ ReturnCode
template<class AbstractClass , typename Identifier = std::string, typename Compare = std::less<Identifier>, typename Creator = AbstractClass* (*)(), typename Destructor = void (*)(AbstractClass*&)>
Enumerator |
---|
FACTORY_OK | |
FACTORY_ERROR | |
ALREADY_EXISTS | |
NOT_FOUND | |
INVALID_ARG | |
UNKNOWN_ERROR | |
◆ addFactory()
template<class AbstractClass , typename Identifier = std::string, typename Compare = std::less<Identifier>, typename Creator = AbstractClass* (*)(), typename Destructor = void (*)(AbstractClass*&)>
Add factory.
Add a factory.
- Parameters
-
id | Factory ID. |
creator | Functor for creator. |
destructor | Functor for destructor. |
- Returns
- FACTORY_OK: Successful ALREADY_EXISTS: already exists. INVALID_ARG: creator or destructor with invalid values.
◆ createObject()
template<class AbstractClass , typename Identifier = std::string, typename Compare = std::less<Identifier>, typename Creator = AbstractClass* (*)(), typename Destructor = void (*)(AbstractClass*&)>
Create factory object.
Create a factory object.
- Parameters
-
- Returns
- Pointer of AbstractClass
◆ deleteObject() [1/2]
template<class AbstractClass , typename Identifier = std::string, typename Compare = std::less<Identifier>, typename Creator = AbstractClass* (*)(), typename Destructor = void (*)(AbstractClass*&)>
Delete factory object.
Delete a factory object.
- Parameters
-
◆ deleteObject() [2/2]
template<class AbstractClass , typename Identifier = std::string, typename Compare = std::less<Identifier>, typename Creator = AbstractClass* (*)(), typename Destructor = void (*)(AbstractClass*&)>
◆ getIdentifiers()
template<class AbstractClass , typename Identifier = std::string, typename Compare = std::less<Identifier>, typename Creator = AbstractClass* (*)(), typename Destructor = void (*)(AbstractClass*&)>
Get factory ID list.
Return a list of factory ID.
- Returns
- ID list
◆ hasFactory()
template<class AbstractClass , typename Identifier = std::string, typename Compare = std::less<Identifier>, typename Creator = AbstractClass* (*)(), typename Destructor = void (*)(AbstractClass*&)>
Factory presence check.
Return a factory having ID or not.
- Parameters
-
- Returns
- true: found, false: not found
◆ removeFactory()
template<class AbstractClass , typename Identifier = std::string, typename Compare = std::less<Identifier>, typename Creator = AbstractClass* (*)(), typename Destructor = void (*)(AbstractClass*&)>
Remove factory.
Remove a factory.
- Parameters
-
- Returns
- FACTORY_OK: Successful NOT_FOUND: ID not found