Overview     Modules     Class Hierarchy     Classes     Members  

This interface lists functions used to regroup plug-ins. More...

#include <TemplateFactory.h>

Inheritance diagram for tlp::TemplateFactoryInterface:
Collaboration diagram for tlp::TemplateFactoryInterface:

Public Member Functions

virtual ~TemplateFactoryInterface ()
virtual Iterator< std::string > * availablePlugins ()=0
 Gets the list of plug-ins that registered themselves in this factory.
virtual bool pluginExists (const std::string &pluginName)=0
 Checks if a given name is registered in this factory.
virtual const
ParameterDescriptionList
getPluginParameters (std::string name)=0
 Gets the whole parameters for the given plug-in.
virtual const std::string & getPluginRelease (std::string name)=0
 Gets the release number of the given plug-in.
virtual const std::list
< tlp::Dependency > & 
getPluginDependencies (std::string name)=0
 Gets the dependencies of a plug-in.
virtual std::string getPluginsClassName ()=0
 Gets the class name for the plug-in's registered class. If the class is in the tlp namespace, the 'tlp::' prefix is removed.
virtual void removePlugin (const std::string &name)=0
 Removes a plug-in from this factory. This is usefull when a plug-in has unmet dependencies, or appears more than once.

Static Public Member Functions

static std::string standardizeName (const char *name)
 standardize a factory name
static void addFactory (TemplateFactoryInterface *factory, const std::string &name)
 Adds a factory to a static map of factories. This map is then used to list all the factories, and all the plug-ins for each factory.
static bool pluginExists (const std::string &factoryName, const std::string &pluginName)
 Checks if a plug-in exists in a specific factory. In debug mode, an assert checks the factory is registered in the factory map before accessing it.

Static Public Attributes

static TLP_SCOPE std::map
< std::string,
TemplateFactoryInterface * > * 
allFactories
static TLP_SCOPE PluginLoadercurrentLoader

Detailed Description

This interface lists functions used to regroup plug-ins.

It is used to list plug-ins that register themselves into it.

The TemplateFactory's role is to list plug-ins, and retrive their dependencies for Tulip to check if they are met. The only check performed should be the unicity of a plug-in in the system.

Each Tulip plug-in has a factory, which needs to be registered into a TemplateFactory. TemplateFactories register themselves in the Tulip plug-in system, and Tulip lists the plug-ins of each TemplateFactory.

Constructor & Destructor Documentation

virtual tlp::TemplateFactoryInterface::~TemplateFactoryInterface ( )
inlinevirtual

Member Function Documentation

static void tlp::TemplateFactoryInterface::addFactory ( TemplateFactoryInterface factory,
const std::string &  name 
)
inlinestatic

Adds a factory to a static map of factories. This map is then used to list all the factories, and all the plug-ins for each factory.

Parameters
factoryThe factory to add.
nameThe name of the factory to add, used as key.
Returns
void
virtual Iterator<std::string>* tlp::TemplateFactoryInterface::availablePlugins ( )
pure virtual

Gets the list of plug-ins that registered themselves in this factory.

Returns
:Iterator< std::string >* An iterator over the names of the plug-ins registered in this factory.

Implemented in tlp::TemplateFactory< ObjectFactory, ObjectType, Context >, tlp::TemplateFactory< ExportModuleFactory, ExportModule, AlgorithmContext >, tlp::TemplateFactory< ImportModuleFactory, ImportModule, AlgorithmContext >, and tlp::TemplateFactory< AlgorithmPlugin, Algorithm, AlgorithmContext >.

virtual const std::list<tlp::Dependency>& tlp::TemplateFactoryInterface::getPluginDependencies ( std::string  name)
pure virtual

Gets the dependencies of a plug-in.

Parameters
nameThe name of the plug-in to retrieve the dependencies of.
Returns
:list< tlp::Dependency, std::allocator< tlp::Dependency > > The list of dependencies of the plug-in.

Implemented in tlp::TemplateFactory< ObjectFactory, ObjectType, Context >, tlp::TemplateFactory< ExportModuleFactory, ExportModule, AlgorithmContext >, tlp::TemplateFactory< ImportModuleFactory, ImportModule, AlgorithmContext >, and tlp::TemplateFactory< AlgorithmPlugin, Algorithm, AlgorithmContext >.

virtual const ParameterDescriptionList& tlp::TemplateFactoryInterface::getPluginParameters ( std::string  name)
pure virtual

Gets the whole parameters for the given plug-in.

Parameters
nameThe name of the plug-in to retrieve the parameters of.
Returns
:PluginParameters The whole parameters of the plug-in.

Implemented in tlp::TemplateFactory< ObjectFactory, ObjectType, Context >, tlp::TemplateFactory< ExportModuleFactory, ExportModule, AlgorithmContext >, tlp::TemplateFactory< ImportModuleFactory, ImportModule, AlgorithmContext >, and tlp::TemplateFactory< AlgorithmPlugin, Algorithm, AlgorithmContext >.

virtual const std::string& tlp::TemplateFactoryInterface::getPluginRelease ( std::string  name)
pure virtual

Gets the release number of the given plug-in.

Parameters
nameThe name of the plug-in to retrieve the version number of.
Returns
:string The version number, ussually formatted as X[.Y], where X is the major, and Y the minor.

Implemented in tlp::TemplateFactory< ObjectFactory, ObjectType, Context >, tlp::TemplateFactory< ExportModuleFactory, ExportModule, AlgorithmContext >, tlp::TemplateFactory< ImportModuleFactory, ImportModule, AlgorithmContext >, and tlp::TemplateFactory< AlgorithmPlugin, Algorithm, AlgorithmContext >.

virtual std::string tlp::TemplateFactoryInterface::getPluginsClassName ( )
pure virtual

Gets the class name for the plug-in's registered class. If the class is in the tlp namespace, the 'tlp::' prefix is removed.

Returns
:string The class name of the plug-in.

Implemented in tlp::TemplateFactory< ObjectFactory, ObjectType, Context >, tlp::TemplateFactory< ExportModuleFactory, ExportModule, AlgorithmContext >, tlp::TemplateFactory< ImportModuleFactory, ImportModule, AlgorithmContext >, and tlp::TemplateFactory< AlgorithmPlugin, Algorithm, AlgorithmContext >.

virtual bool tlp::TemplateFactoryInterface::pluginExists ( const std::string &  pluginName)
pure virtual

Checks if a given name is registered in this factory.

Parameters
pluginNameThe name of the plug-in to look for.
Returns
bool Whether there is a plug-in with the given name registered in this factory.

Implemented in tlp::TemplateFactory< ObjectFactory, ObjectType, Context >, tlp::TemplateFactory< ExportModuleFactory, ExportModule, AlgorithmContext >, tlp::TemplateFactory< ImportModuleFactory, ImportModule, AlgorithmContext >, and tlp::TemplateFactory< AlgorithmPlugin, Algorithm, AlgorithmContext >.

static bool tlp::TemplateFactoryInterface::pluginExists ( const std::string &  factoryName,
const std::string &  pluginName 
)
inlinestatic

Checks if a plug-in exists in a specific factory. In debug mode, an assert checks the factory is registered in the factory map before accessing it.

Parameters
factoryNameThe name of the factory to look into.
pluginNameThe name of the plugin to look for.
Returns
bool Whether the plug-in exists in the specified factory.
virtual void tlp::TemplateFactoryInterface::removePlugin ( const std::string &  name)
pure virtual

Removes a plug-in from this factory. This is usefull when a plug-in has unmet dependencies, or appears more than once.

Parameters
nameThe name of the plug-in to remove.
Returns
void

Implemented in tlp::TemplateFactory< ObjectFactory, ObjectType, Context >, tlp::TemplateFactory< ExportModuleFactory, ExportModule, AlgorithmContext >, tlp::TemplateFactory< ImportModuleFactory, ImportModule, AlgorithmContext >, and tlp::TemplateFactory< AlgorithmPlugin, Algorithm, AlgorithmContext >.

static std::string tlp::TemplateFactoryInterface::standardizeName ( const char *  name)
inlinestatic

standardize a factory name

Member Data Documentation

TLP_SCOPE std::map< std::string, TemplateFactoryInterface* >* tlp::TemplateFactoryInterface::allFactories
static
TLP_SCOPE PluginLoader* tlp::TemplateFactoryInterface::currentLoader
static


Tulip Software by LaBRI Visualization Team    2001 - 2012