41 #ifndef rrPluginManagerH
42 #define rrPluginManagerH
45 #include "rrPluginsAPIExporter.h"
46 #include "rrConstants.h"
47 #include "rrStringList.h"
48 #include "Poco/SharedLibrary.h"
58 using rr::gEmptyString;
60 using Poco::SharedLibrary;
67 typedef pair< Poco::SharedLibrary*, Plugin* > rrPlugin;
100 bool setPluginDir(
const string& dir);
106 string getPluginDir();
112 bool load(
const string& pluginName = gEmptyString);
118 bool unload(
Plugin* plugin = NULL);
123 int getNumberOfPlugins();
129 int getNumberOfCategories();
151 Plugin* getPreviousPlugin();
157 Plugin* getCurrentPlugin();
164 Plugin* getPlugin(
const string& name);
170 StringList getPluginNames();
176 StringList getPluginLibraryNames();
178 string mPluginFolder;
179 string mPluginExtension;
180 vector< rrPlugin > mPlugins;
181 vector< rrPlugin >::iterator mPluginsIter;
183 bool loadPlugin(
const string& sharedLib);
184 bool checkImplementationLanguage(SharedLibrary* plugin);
185 const char* getImplementationLanguage(SharedLibrary* plugin);
186 Plugin* createCPlugin(SharedLibrary *libHandle);
187 Plugin* getPlugin(
const int& i);
188 Plugin* operator[](
const int& i);
Definition: rrPlugin.h:94
Definition: rrPluginManager.h:79