35 #ifndef plugin_factory_h
36 #define plugin_factory_h
42 #include "BESPlugin.h"
59 std::map<std::string, BESPlugin<C> *> d_children;
85 struct DeletePlugins:
public std::unary_function<std::pair<std::string, BESPlugin<C> *>, void>
88 void operator()(std::pair<std::string,
BESPlugin<C> *> elem)
117 for_each(d_children.begin(), d_children.end(), DeletePlugins());
125 void add_mapping(
const std::string &name,
const std::string &library_name)
128 d_children.insert(std::make_pair(name, child_class));
149 if (!child_implementation)
throw NoSuchObject(std::string(
"No class is bound to ") + name, __FILE__, __LINE__);
153 virtual void dump(std::ostream &strm)
const
155 strm <<
"BESPluginFactory::dump - (" << (
void *)
this <<
")" << std::endl;