diff options
| author | Zdenek Prikryl <zprikryl@redhat.com> | 2009-06-29 10:59:01 +0200 |
|---|---|---|
| committer | Zdenek Prikryl <zprikryl@redhat.com> | 2009-06-29 10:59:01 +0200 |
| commit | 7171080b4efbc279408047a7a2bf49fec3866456 (patch) | |
| tree | 685ae2fdfc22557723d9c86a49e0d5bd3a92972a /lib/MiddleWare/PluginManager.h | |
| parent | 0f60b164457d0f0aa7f540c94625feaed4f9e3ce (diff) | |
added comments
Diffstat (limited to 'lib/MiddleWare/PluginManager.h')
| -rw-r--r-- | lib/MiddleWare/PluginManager.h | 79 |
1 files changed, 72 insertions, 7 deletions
diff --git a/lib/MiddleWare/PluginManager.h b/lib/MiddleWare/PluginManager.h index 0da246d..2e2e797 100644 --- a/lib/MiddleWare/PluginManager.h +++ b/lib/MiddleWare/PluginManager.h @@ -32,39 +32,104 @@ #include "Database.h" #include "Action.h" +/** + * A class. It takes care of loading, registering and manipulating with + * plugins. When a plugin is loaded, its library is opened, but no plugin + * instance is created. It is possible after plugin registration. + */ class CPluginManager { private: typedef std::map<std::string, CABRTPlugin*> map_abrt_plugins_t; typedef std::map<std::string, CPlugin*> map_plugins_t; - + /** + * Loaded plugins. A key is a plugin name. + */ map_abrt_plugins_t m_mapABRTPlugins; + /** + * Registered plugins. A key is a plugin name. + */ map_plugins_t m_mapPlugins; - + /** + * Plugins configuration directory (e.g. /etc/abrt/plugins, ...). + */ std::string m_sPlugisConfDir; + /** + * Plugins library directory (e.g. /usr/lib/abrt/plugins, ...). + */ std::string m_sPlugisLibDir; public: + /** + * A constructor. + * @param pPlugisConfDir A plugins configuration directory. + * @param pPlugisLibDir A plugins library directory. + */ CPluginManager(const std::string& pPlugisConfDir, const std::string& pPlugisLibDir); - + /** + * A destructor. + */ ~CPluginManager(); - + /** + * A method, which loads all plugins in plugins library direcotry. + */ void LoadPlugins(); + /** + * A method, which unregister and unload all loaded plugins. + */ void UnLoadPlugins(); - + /** + * A method, which loads particular plugin. + * @param pName A plugin name. + */ void LoadPlugin(const std::string& pName); + /** + * A method, which unloads particular plugin. + * @param pName A plugin name. + */ void UnLoadPlugin(const std::string& pName); + /** + * A method, which registers particular plugin. + * @param pName A plugin name. + */ void RegisterPlugin(const std::string& pName); + /** + * A method, which unregister particular plugin. + * @param pName A plugin name. + */ void UnRegisterPlugin(const std::string& pName); - + /** + * A method, which returns instance of particular analyzer plugin. + * @param pName A plugin name. + * @return An analyzer plugin. + */ CAnalyzer* GetAnalyzer(const std::string& pName); + /** + * A method, which returns instance of particular reporter plugin. + * @param pName A plugin name. + * @return A reporter plugin. + */ CReporter* GetReporter(const std::string& pName); + /** + * A method, which returns instance of particular action plugin. + * @param pName A plugin name. + * @return An action plugin. + */ CAction* GetAction(const std::string& pName); + /** + * A method, which returns instance of particular database plugin. + * @param pName A plugin name. + * @return A database plugin. + */ CDatabase* GetDatabase(const std::string& pName); + /** + * A method, which returns type of particular plugin. + * @param pName A plugin name. + * @return A plugin type. + */ plugin_type_t GetPluginType(const std::string& pName); - }; #endif /*PLUGINMANAGER_H_*/ |
