39 #ifndef ORO_PLUGINLOADER_HPP_ 40 #define ORO_PLUGINLOADER_HPP_ 44 #include <boost/shared_ptr.hpp> 46 #include "../rtt-fwd.hpp" 47 #include "../rtt-config.h" 48 #include "../os/Mutex.hpp" 76 LoadedLib(std::string n, std::string short_name,
void* h)
77 : filename(n), shortname(short_name), handle(h), loadPlugin(0), is_typekit(
false), is_service(
false)
87 std::string shortname;
95 bool is_typekit, is_service;
98 std::vector< LoadedLib > loadedLibs;
103 std::string plugin_path;
119 bool loadInProcess(std::string filename, std::string shortname, std::string kind,
bool log_error );
129 bool loadPluginInternal( std::string
const& name, std::string
const& path_list, std::string
const& subdir, std::string
const& kind );
138 bool loadPluginsInternal( std::string
const& path_list, std::string
const& subdir, std::string
const& kind );
143 bool isLoadedInternal(std::string name);
151 bool isCompatiblePlugin(std::string
const& filepath);
163 static boost::shared_ptr<PluginLoader> Instance();
169 static void Release();
176 bool loadLibrary(std::string
const& path);
187 bool loadTypekits(std::string
const& path_list);
197 bool loadTypekit(std::string
const& name, std::string
const& path_list);
206 bool loadPlugins(std::string
const& path_list);
215 bool isLoaded(std::string name);
224 bool loadPlugin(std::string
const& name, std::string
const& path_list);
233 bool loadService(std::string
const& servicename,
TaskContext* tc);
239 std::vector<std::string> listServices()
const;
245 std::vector<std::string> listPlugins()
const;
251 std::vector<std::string> listTypekits()
const;
259 std::string getPluginPath()
const;
267 void setPluginPath( std::string
const& newpath );
Loads plugins found on the filesystem and keeps track of found plugins, typekits and services...
boost::shared_ptr< Service > ServicePtr
The TaskContext is the C++ representation of an Orocos component.
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
An object oriented wrapper around a recursive mutex.
boost::shared_ptr< PluginLoader > shared_ptr