te::plugin::PluginEngineFactory Class Referenceabstract

This is the abstract factory for plugin engines. More...

#include <PluginEngineFactory.h>

Inheritance diagram for te::plugin::PluginEngineFactory:
te::common::AbstractFactory< AbstractPluginEngine, std::string > te::plugin::CppPluginEngineFactory

Public Types

typedef FactoryDictionary< AbstractFactory< AbstractPluginEngine, std::string, std::less< std::string > >, std::string, std::less< std::string > > dictionary_type
 
typedef AbstractFactory factory_type
 

Public Member Functions

const std::string & getKey () const
 It returns the factory key associated to the concreate factory. More...
 
virtual ~PluginEngineFactory ()
 Virtual destructor. More...
 

Static Public Member Functions

static const factory_typefind (const std::string &factoryKey)
 
static dictionary_typegetDictionary ()
 It returns a reference to the internal dictionary of concrete factories. More...
 
static AbstractPluginEnginemake (const std::string &factoryKey)
 It creates an object with the appropriated factory. More...
 

Protected Member Functions

virtual AbstractPluginEnginebuild ()=0
 Concrete factories (derived from this one) must implement this method in order to create objects. More...
 
 PluginEngineFactory (const std::string &factoryKey)
 It creates the factory. More...
 

Protected Attributes

std::string m_factoryKey
 The key that identifies the concrete factory: it will be used for unregistering the factory during destruction. More...
 

Detailed Description

This is the abstract factory for plugin engines.

If you want a specific engine in order to load a plugin you can use a command like: te::plugin::AbstractPluginEngine* pEngine = te::plugin::PluginEngineFactory::make("C++");

Note
The caller of the method make will take the ownership of the returned engine.
See also
PluginEngine, AbstractFactory

Definition at line 52 of file PluginEngineFactory.h.

Member Typedef Documentation

typedef FactoryDictionary<AbstractFactory<AbstractPluginEngine , std::string , std::less<std::string > >, std::string , std::less<std::string > > te::common::AbstractFactory< AbstractPluginEngine , std::string , std::less<std::string > >::dictionary_type
inherited

Definition at line 73 of file AbstractFactory.h.

typedef AbstractFactory te::common::AbstractFactory< AbstractPluginEngine , std::string , std::less<std::string > >::factory_type
inherited

Definition at line 77 of file AbstractFactory.h.

Constructor & Destructor Documentation

virtual te::plugin::PluginEngineFactory::~PluginEngineFactory ( )
virtual

Virtual destructor.

te::plugin::PluginEngineFactory::PluginEngineFactory ( const std::string &  factoryKey)
protected

It creates the factory.

The key of a PluginEngineFactory is a string.

Parameters
factoryKeyThe key that identifies the factory.

Member Function Documentation

virtual AbstractPluginEngine * te::common::AbstractFactory< AbstractPluginEngine , std::string , std::less<std::string > >::build ( )
protectedpure virtualinherited

Concrete factories (derived from this one) must implement this method in order to create objects.

Returns
It returns an object created by the concrete factory.

Implemented in te::plugin::CppPluginEngineFactory.

static const factory_type* te::common::AbstractFactory< AbstractPluginEngine , std::string , std::less<std::string > >::find ( const std::string &  factoryKey)
staticinherited
static dictionary_type& te::common::AbstractFactory< AbstractPluginEngine , std::string , std::less<std::string > >::getDictionary ( )
staticinherited

It returns a reference to the internal dictionary of concrete factories.

The dictionary is a singleton.

Returns
A reference to the internal dictionary.
const std::string & te::common::AbstractFactory< AbstractPluginEngine , std::string , std::less<std::string > >::getKey ( ) const
inherited

It returns the factory key associated to the concreate factory.

Returns
The factory key associated to the concreate factory.
static AbstractPluginEngine * te::common::AbstractFactory< AbstractPluginEngine , std::string , std::less<std::string > >::make ( const std::string &  factoryKey)
staticinherited

It creates an object with the appropriated factory.

Parameters
factoryKeyA key that identifies the factory used to build the object.
Returns
It returns a new object created by the given factory.
Exceptions
ExceptionIf the concrete factory is not specified or the object can not be built for any reason this methiod may throws an exception.
Note
The caller of this method will take the ownership of the returned object.

Member Data Documentation

std::string te::common::AbstractFactory< AbstractPluginEngine , std::string , std::less<std::string > >::m_factoryKey
protectedinherited

The key that identifies the concrete factory: it will be used for unregistering the factory during destruction.

Definition at line 136 of file AbstractFactory.h.


The documentation for this class was generated from the following file: