#include <factory.hpp>
template<class AbstractProduct, typename IdentifierType, typename ProductCreator = boost::function<AbstractProduct*()>, template< typename, class > class FactoryErrorPolicy = FactoryDefaultError>
class Feel::Factory< AbstractProduct, IdentifierType, ProductCreator, FactoryErrorPolicy >
Implements a generic object Factory.
- See Also
- FactoryDefaultError, FactoryClone, TypeInfo
- Author
- Christophe Prud'homme
Inherits FactoryErrorPolicy< IdentifierType, AbstractProduct >.
|
|
typedef IdentifierType | identifier_type |
|
typedef AbstractProduct | product_type |
|
typedef ProductCreator | creator_type |
|
typedef FactoryErrorPolicy
< identifier_type,
product_type > | super |
|
template<class AbstractProduct , typename IdentifierType , typename ProductCreator = boost::function<AbstractProduct*()>, template< typename, class > class FactoryErrorPolicy = FactoryDefaultError>
product_type* Feel::Factory< AbstractProduct, IdentifierType, ProductCreator, FactoryErrorPolicy >::createObject |
( |
const identifier_type & |
id) | |
|
|
inline |
Create an object from a product registered in the Factory using identifier id
- Parameters
-
id | identifier of the product to instantiate |
- Returns
- the object associate with
id
template<class AbstractProduct , typename IdentifierType , typename ProductCreator = boost::function<AbstractProduct*()>, template< typename, class > class FactoryErrorPolicy = FactoryDefaultError>
bool Feel::Factory< AbstractProduct, IdentifierType, ProductCreator, FactoryErrorPolicy >::registerProduct |
( |
const identifier_type & |
id, |
|
|
creator_type |
creator |
|
) |
| |
|
inline |
Register a product.
A product is composed of an identifier (typically a std::string) and a functor that will create the associated object.
- Parameters
-
id | identifier for the object to be registered |
creator | the functor that will create the registered object |
- Returns
- true if registration went fine, false otherwise
template<class AbstractProduct , typename IdentifierType , typename ProductCreator = boost::function<AbstractProduct*()>, template< typename, class > class FactoryErrorPolicy = FactoryDefaultError>
bool Feel::Factory< AbstractProduct, IdentifierType, ProductCreator, FactoryErrorPolicy >::unregisterProduct |
( |
const identifier_type & |
id) | |
|
|
inline |
Unregister a product
- Parameters
-
- See Also
- registerProduct
- Returns
- true if unregistration went fine, false otherwise
The documentation for this class was generated from the following file: