A Factory for objects whose implementations reside in shared objects designed to be loaded at run time. More...
#include <BESPluginFactory.h>
Classes | |
struct | DeletePlugins |
Public Member Functions | |
void | add_mapping (const string &name, const string &library_name) |
Add a mapping of name to library_name to the BESPluginFactory. | |
BESPluginFactory () | |
Create an empty BESPluginFactory. | |
BESPluginFactory (const string &name, const string &library_name) | |
Create a BESPluginFactory and set up a single entry. | |
virtual void | dump (ostream &strm) const |
C * | get (const string &name) throw (NoSuchObject, NoSuchLibrary) |
Use the BESPlugingFactory to get an instance of the class C matched to name. | |
virtual | ~BESPluginFactory () |
A Factory for objects whose implementations reside in shared objects designed to be loaded at run time.
This uses the BESPlugin class to perform the actual instantiation of those objects; the role of this class is to maintain a mapping between the names of the SO libraries and the names of the C++ object implementations they hold.
Definition at line 61 of file BESPluginFactory.h.
BESPluginFactory< C >::BESPluginFactory | ( | const string & | name, | |
const string & | library_name | |||
) | [inline] |
Create a BESPluginFactory and set up a single entry.
configure other entries using the add_mapping() method.
name | Use name to get an instance of the child defined in library_name. | |
library_name | The name of the library which contains the child class implementation. |
Definition at line 106 of file BESPluginFactory.h.
BESPluginFactory< C >::BESPluginFactory | ( | ) | [inline] |
Create an empty BESPluginFactory.
Definition at line 113 of file BESPluginFactory.h.
virtual BESPluginFactory< C >::~BESPluginFactory | ( | ) | [inline, virtual] |
Definition at line 115 of file BESPluginFactory.h.
void BESPluginFactory< C >::add_mapping | ( | const string & | name, | |
const string & | library_name | |||
) | [inline] |
Add a mapping of name to library_name to the BESPluginFactory.
name | The child object's name. | |
library_name | The name of the library which holds its implementation. |
Definition at line 125 of file BESPluginFactory.h.
Referenced by BESPluginFactory< BESAbstractModule >::BESPluginFactory().
virtual void BESPluginFactory< C >::dump | ( | ostream & | strm | ) | const [inline, virtual] |
Definition at line 154 of file BESPluginFactory.h.
C* BESPluginFactory< C >::get | ( | const string & | name | ) | throw (NoSuchObject, NoSuchLibrary) [inline] |
Use the BESPlugingFactory to get an instance of the class C matched to name.
Once the name name has been bound to a SO library library_name, this method can be used to get an instance of the object whose implementation is in the SO file using only the name name.
name | The name registered with the implementation of a child of the class C using either the PlugFactory ctor or the add_mapping method. |
NoSuchObject | thrown if name has not been registered. | |
NoSuchLibrary | thrown if the library matched to name cannot be found. |
Definition at line 146 of file BESPluginFactory.h.
Referenced by BESModuleApp::terminate().