Image Component Library (ICL)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
icl::utils::PluginRegister< T > Class Template Reference

Utility class for plugin registration. More...

#include <PluginRegister.h>

List of all members.

Classes

struct  Plugin
 internally used instance type: More...

Public Types

typedef std::map< std::string,
std::string > 
Data
 data used for instance creation
typedef utils::Function< T
*, const Data & > 
CreateFunction
 creator function for instances

Public Member Functions

void add (const std::string &name, CreateFunction create, const std::string &description, const std::string &creationSyntax)
 adds a new plugin
T * createInstance (const std::string &name, const Data &data) throw (utils::ICLException)
 creates an instance (or throws
std::string getRegisteredInstanceDescription ()
 returns a string representation of all registered types
const std::map< std::string,
Plugin > & 
getRegisteredPlugins () const
 returns a all registered plugins

Static Public Member Functions

static PluginRegister< T > & instance ()
 returns the static instance for the specific type

Private Member Functions

 PluginRegister ()
 private constructor (use singelton creator function instance())

Private Attributes

std::map< std::string, Pluginplugins
 internal plugin list

Detailed Description

template<class T>
class icl::utils::PluginRegister< T >

Utility class for plugin registration.


Member Typedef Documentation

template<class T>
typedef utils::Function<T*,const Data&> icl::utils::PluginRegister< T >::CreateFunction

creator function for instances

template<class T>
typedef std::map<std::string,std::string> icl::utils::PluginRegister< T >::Data

data used for instance creation


Constructor & Destructor Documentation

template<class T>
icl::utils::PluginRegister< T >::PluginRegister ( ) [inline, private]

private constructor (use singelton creator function instance())


Member Function Documentation

template<class T>
void icl::utils::PluginRegister< T >::add ( const std::string &  name,
CreateFunction  create,
const std::string &  description,
const std::string &  creationSyntax 
) [inline]

adds a new plugin

template<class T>
T* icl::utils::PluginRegister< T >::createInstance ( const std::string &  name,
const Data data 
) throw (utils::ICLException) [inline]

creates an instance (or throws

template<class T>
std::string icl::utils::PluginRegister< T >::getRegisteredInstanceDescription ( ) [inline]

returns a string representation of all registered types

template<class T>
const std::map<std::string,Plugin>& icl::utils::PluginRegister< T >::getRegisteredPlugins ( ) const [inline]

returns a all registered plugins

template<class T>
static PluginRegister<T>& icl::utils::PluginRegister< T >::instance ( ) [inline, static]

returns the static instance for the specific type


Member Data Documentation

template<class T>
std::map<std::string,Plugin> icl::utils::PluginRegister< T >::plugins [private]

internal plugin list


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