Rosetta 3.3
Public Types | Static Public Member Functions
utility::factory::Factory< P > Class Template Reference

Pluggable factory. More...

#include <Factory.hh>

List of all members.

Public Types

typedefProduct
typedef Product::FactoryKey Key
typedef Product::FactoryKeyP KeyP
typedef Product::FactoryKeyFxn KeyFxn
typedef Product::FactoryProductP ProductP
typedef Product::FactoryArg Arg
typedef Product::FactoryCreate Create

Static Public Member Functions

static void add (Key const &key, Create create)
 Add a Product to the registry.
static void add (KeyP const &key_p, Create create)
 Add a Product to the pointer registry.
static void add (KeyFxn key_fxn, Create create)
 Add a Product to the function registry.
static void remove (Key const &key)
 Remove a Product from the registry.
static void remove (KeyP const &key_p)
 Remove a Product from the pointer registry.
static void remove (KeyFxn key_fxn)
 Remove a Product from the function registry.
static bool has (Key const &key)
 Has a Product with key?
static ProductP create (Key const &key)
 Create a Product from key.
static ProductP create (Key const &key, Arg &arg)
 Create a Product from key and 1 argument.

Detailed Description

template<typename P>
class utility::factory::Factory< P >

Pluggable factory.


Member Typedef Documentation

template<typename P >
typedef Product::FactoryArg utility::factory::Factory< P >::Arg
template<typename P >
typedef Product::FactoryCreate utility::factory::Factory< P >::Create
template<typename P >
typedef Product::FactoryKey utility::factory::Factory< P >::Key
template<typename P >
typedef Product::FactoryKeyFxn utility::factory::Factory< P >::KeyFxn
template<typename P >
typedef Product::FactoryKeyP utility::factory::Factory< P >::KeyP
template<typename P >
typedef P utility::factory::Factory< P >::Product
template<typename P >
typedef Product::FactoryProductP utility::factory::Factory< P >::ProductP

Member Function Documentation

template<typename P >
static void utility::factory::Factory< P >::add ( Key const &  key,
Create  create 
) [inline, static]

Add a Product to the registry.

Referenced by utility::factory::Registrant< P >::Registrant().

template<typename P >
static void utility::factory::Factory< P >::add ( KeyP const &  key_p,
Create  create 
) [inline, static]

Add a Product to the pointer registry.

template<typename P >
static void utility::factory::Factory< P >::add ( KeyFxn  key_fxn,
Create  create 
) [inline, static]

Add a Product to the function registry.

template<typename P >
static ProductP utility::factory::Factory< P >::create ( Key const &  key,
Arg arg 
) [inline, static]

Create a Product from key and 1 argument.

template<typename P >
static ProductP utility::factory::Factory< P >::create ( Key const &  key) [inline, static]

Create a Product from key.

template<typename P >
static bool utility::factory::Factory< P >::has ( Key const &  key) [inline, static]

Has a Product with key?

template<typename P >
static void utility::factory::Factory< P >::remove ( Key const &  key) [inline, static]

Remove a Product from the registry.

References key.

template<typename P >
static void utility::factory::Factory< P >::remove ( KeyP const &  key_p) [inline, static]

Remove a Product from the pointer registry.

template<typename P >
static void utility::factory::Factory< P >::remove ( KeyFxn  key_fxn) [inline, static]

Remove a Product from the function registry.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines