RSB  0.7.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
rsb::transport::ConnectorFactory< Interface > Class Template Reference

Objects of this class are specialized factories that construct Connector objects and provide introspection for connector implementations without instantiating them. More...

#include <Factory.h>

Inheritance diagram for rsb::transport::ConnectorFactory< Interface >:
Inheritance graph
Collaboration diagram for rsb::transport::ConnectorFactory< Interface >:
Collaboration graph

Classes

class  ConnectorInfo
 Instances of this class describe capabilities and properties of connector implementations. More...

Public Member Functions

ConnectorInfo getConnectorInfo (const std::string &name) const
 Return information regarding the connector implementation named name.
std::set< ConnectorInfogetConnectorInfos () const
void registerConnector (const std::string &name, const CreateFunction &constructor, const std::set< std::string > &schemas=std::set< std::string >(), bool remote=true, const std::set< std::string > &options=std::set< std::string >())
 For the connector implementation named name, register the construct function constructor, supported schemas schemas and recognized configuration options options.
void registerConnector (const std::string &name, const CreateFunction &constructor, const std::string &schema, bool remote=true, const std::set< std::string > &options=std::set< std::string >())

Private Types

typedef rsc::patterns::Factory
< std::string, Interface > 
Factory
typedef Factory::CreateFunction CreateFunction
typedef Factory::ImplMapProxy ImplMapProxy
typedef std::map< std::string,
ConnectorInfo
InfoMap

Private Member Functions

std::string getClassName () const
void printContents (std::ostream &stream) const

Private Attributes

InfoMap infos

Detailed Description

template<typename Interface>
class rsb::transport::ConnectorFactory< Interface >

Objects of this class are specialized factories that construct Connector objects and provide introspection for connector implementations without instantiating them.

Author
jmoringe

Definition at line 54 of file Factory.h.

Member Typedef Documentation

template<typename Interface >
typedef Factory::CreateFunction rsb::transport::ConnectorFactory< Interface >::CreateFunction
private

Definition at line 152 of file Factory.h.

template<typename Interface >
typedef rsc::patterns::Factory<std::string, Interface> rsb::transport::ConnectorFactory< Interface >::Factory
private

Definition at line 151 of file Factory.h.

template<typename Interface >
typedef Factory::ImplMapProxy rsb::transport::ConnectorFactory< Interface >::ImplMapProxy
private

Definition at line 153 of file Factory.h.

template<typename Interface >
typedef std::map<std::string, ConnectorInfo> rsb::transport::ConnectorFactory< Interface >::InfoMap
private

Definition at line 154 of file Factory.h.

Member Function Documentation

template<typename Interface >
std::string rsb::transport::ConnectorFactory< Interface >::getClassName ( ) const
inlineprivate

Definition at line 218 of file Factory.h.

template<typename Interface >
ConnectorInfo rsb::transport::ConnectorFactory< Interface >::getConnectorInfo ( const std::string &  name) const
inline

Return information regarding the connector implementation named name.

Parameters
nameName of the implementation for which information should be returned.
Returns
A ConnectorInfo object.
Exceptions
rsc::runtime::NoSuchObjectIf a record for name cannot be found.

Definition at line 166 of file Factory.h.

References rsb::transport::ConnectorFactory< Interface >::infos.

Referenced by rsb::transport::isRemote(), and rsb::transport::ConnectorFactory< Interface >::printContents().

Here is the caller graph for this function:

template<typename Interface >
std::set<ConnectorInfo> rsb::transport::ConnectorFactory< Interface >::getConnectorInfos ( ) const
inline

Definition at line 174 of file Factory.h.

References rsb::transport::ConnectorFactory< Interface >::infos.

Referenced by rsb::Factory::Factory().

Here is the caller graph for this function:

template<typename Interface >
void rsb::transport::ConnectorFactory< Interface >::printContents ( std::ostream &  stream) const
inlineprivate

Definition at line 222 of file Factory.h.

References rsb::transport::ConnectorFactory< Interface >::getConnectorInfo().

Here is the call graph for this function:

template<typename Interface >
void rsb::transport::ConnectorFactory< Interface >::registerConnector ( const std::string &  name,
const CreateFunction constructor,
const std::set< std::string > &  schemas = std::set<std::string>(),
bool  remote = true,
const std::set< std::string > &  options = std::set<std::string>() 
)
inline

For the connector implementation named name, register the construct function constructor, supported schemas schemas and recognized configuration options options.

Parameters
nameName of the connector implementation.
constructorConstruct function.
schemasA list of strings designating schemas supported by the implementation.
optionsA list of strings describing configuration options recognized by the implementation.

Definition at line 196 of file Factory.h.

References rsb::transport::ConnectorFactory< Interface >::infos.

Referenced by rsb::transport::ConnectorFactory< Interface >::registerConnector(), and rsb::transport::registerDefaultTransports().

Here is the caller graph for this function:

template<typename Interface >
void rsb::transport::ConnectorFactory< Interface >::registerConnector ( const std::string &  name,
const CreateFunction constructor,
const std::string &  schema,
bool  remote = true,
const std::set< std::string > &  options = std::set<std::string>() 
)
inline

Definition at line 207 of file Factory.h.

References rsb::transport::ConnectorFactory< Interface >::registerConnector().

Here is the call graph for this function:

Member Data Documentation


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