39 #ifndef MBF_ABSTRACT_NAV__ABSTRACT_PLUGIN_MANAGER_H_ 40 #define MBF_ABSTRACT_NAV__ABSTRACT_PLUGIN_MANAGER_H_ 42 #include <boost/function.hpp> 46 template <
typename PluginType>
52 typedef boost::function<bool (const std::string& name, const typename PluginType::Ptr& plugin_ptr)>
initPluginFunction;
55 const std::string param_name,
56 const loadPluginFunction& loadPlugin,
57 const initPluginFunction& initPlugin
64 std::string
getType(
const std::string& name);
68 typename PluginType::Ptr
getPlugin(
const std::string& name);
71 std::map<std::string, typename PluginType::Ptr>
plugins_;
80 #include "impl/abstract_plugin_manager.tcc" 81 #endif //MBF_ABSTRACT_NAV__ABSTRACT_PLUGIN_MANAGER_H_ PluginType::Ptr getPlugin(const std::string &name)
const std::string param_name_
const initPluginFunction initPlugin_
std::map< std::string, typename PluginType::Ptr > plugins_
std::map< std::string, std::string > plugins_type_
const std::vector< std::string > & getLoadedNames()
boost::function< bool(const std::string &name, const typename PluginType::Ptr &plugin_ptr)> initPluginFunction
bool hasPlugin(const std::string &name)
const loadPluginFunction loadPlugin_
boost::function< typename PluginType::Ptr(const std::string &plugin)> loadPluginFunction
std::vector< std::string > names_
AbstractPluginManager(const std::string param_name, const loadPluginFunction &loadPlugin, const initPluginFunction &initPlugin)
std::string getType(const std::string &name)