summaryrefslogtreecommitdiffstats
path: root/lib/MiddleWare/PluginManager.h
diff options
context:
space:
mode:
authorZdenek Prikryl <zprikryl@redhat.com>2009-06-29 10:59:01 +0200
committerZdenek Prikryl <zprikryl@redhat.com>2009-06-29 10:59:01 +0200
commit7171080b4efbc279408047a7a2bf49fec3866456 (patch)
tree685ae2fdfc22557723d9c86a49e0d5bd3a92972a /lib/MiddleWare/PluginManager.h
parent0f60b164457d0f0aa7f540c94625feaed4f9e3ce (diff)
added comments
Diffstat (limited to 'lib/MiddleWare/PluginManager.h')
-rw-r--r--lib/MiddleWare/PluginManager.h79
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_*/