diff options
| author | Zdenek Prikryl <zprikryl@redhat.com> | 2009-07-24 10:54:10 +0200 |
|---|---|---|
| committer | Zdenek Prikryl <zprikryl@redhat.com> | 2009-07-24 10:54:10 +0200 |
| commit | a2a1ec29e008936654a146df244e4265668bfb31 (patch) | |
| tree | b22e4948feea83fecde1bb5ed5d1b4bd368b5bd6 /lib/MiddleWare | |
| parent | e105dd726b9a7313eb64e2c59d336452439d2f97 (diff) | |
| download | abrt-a2a1ec29e008936654a146df244e4265668bfb31.tar.gz abrt-a2a1ec29e008936654a146df244e4265668bfb31.tar.xz abrt-a2a1ec29e008936654a146df244e4265668bfb31.zip | |
Added first part of gui support in reporting
Diffstat (limited to 'lib/MiddleWare')
| -rw-r--r-- | lib/MiddleWare/ABRTPlugin.cpp | 6 | ||||
| -rw-r--r-- | lib/MiddleWare/ABRTPlugin.h | 5 | ||||
| -rw-r--r-- | lib/MiddleWare/Makefile.am | 4 | ||||
| -rw-r--r-- | lib/MiddleWare/MiddleWare.cpp | 5 | ||||
| -rw-r--r-- | lib/MiddleWare/MiddleWare.h | 8 | ||||
| -rw-r--r-- | lib/MiddleWare/Plugin.h | 6 | ||||
| -rw-r--r-- | lib/MiddleWare/PluginManager.cpp | 16 | ||||
| -rw-r--r-- | lib/MiddleWare/PluginManager.h | 8 | ||||
| -rw-r--r-- | lib/MiddleWare/test.cpp | 10 |
9 files changed, 59 insertions, 9 deletions
diff --git a/lib/MiddleWare/ABRTPlugin.cpp b/lib/MiddleWare/ABRTPlugin.cpp index 56e58b9..f2afa41 100644 --- a/lib/MiddleWare/ABRTPlugin.cpp +++ b/lib/MiddleWare/ABRTPlugin.cpp @@ -69,6 +69,12 @@ const std::string& CABRTPlugin::GetWWW() return m_pPluginInfo->m_sWWW; } +const std::string& CABRTPlugin::GetGTKBuilder() +{ + return m_pPluginInfo->m_sGTKBuilder; +} + + const plugin_type_t CABRTPlugin::GetType() { return m_pPluginInfo->m_Type; diff --git a/lib/MiddleWare/ABRTPlugin.h b/lib/MiddleWare/ABRTPlugin.h index e585f2a..cdf72bb 100644 --- a/lib/MiddleWare/ABRTPlugin.h +++ b/lib/MiddleWare/ABRTPlugin.h @@ -93,6 +93,11 @@ class CABRTPlugin */ const std::string& GetWWW(); /** + * It is used for getting a path to gui description. + * @return home page + */ + const std::string& GetGTKBuilder(); + /** * It is used for getting loaded plugin's type. * @return type */ diff --git a/lib/MiddleWare/Makefile.am b/lib/MiddleWare/Makefile.am index 1023aa0..016d6ea 100644 --- a/lib/MiddleWare/Makefile.am +++ b/lib/MiddleWare/Makefile.am @@ -12,8 +12,8 @@ libABRTMiddleWare_la_CPPFLAGS = -I$(srcdir)/../../inc -I$(srcdir)/../Utils -I$(s check_PROGRAMS = test test_SOURCES = test.cpp -test_LDADD = ../Utils/libABRTUtils.la libABRTMiddleWare.la $(DL_LIBS) $(RPM_LIBS) -test_CPPFLAGS = -I$(srcdir)/../Utils \ +test_LDADD = ../Utils/libABRTUtils.la libABRTMiddleWare.la $(DL_LIBS) $(RPM_LIBS) ../CommLayer/libABRTCommLayer.la +test_CPPFLAGS = -I$(srcdir)/../Utils -I$(srcdir)/../../inc -I$(srcdir)/../CommLayer\ -DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \ -DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \ -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \ diff --git a/lib/MiddleWare/MiddleWare.cpp b/lib/MiddleWare/MiddleWare.cpp index f520189..34b4391 100644 --- a/lib/MiddleWare/MiddleWare.cpp +++ b/lib/MiddleWare/MiddleWare.cpp @@ -566,6 +566,11 @@ vector_pair_string_string_t CMiddleWare::GetUUIDsOfCrash(const std::string& pUID return UUIDsUIDs; } +map_string_string_t CMiddleWare::GetPluginInfo(const std::string& pName) +{ + return m_pPluginManager->GetPluginInfo(pName); +} + void CMiddleWare::SetOpenGPGCheck(const bool& pCheck) { m_bOpenGPGCheck = pCheck; diff --git a/lib/MiddleWare/MiddleWare.h b/lib/MiddleWare/MiddleWare.h index d0bc9f7..625e037 100644 --- a/lib/MiddleWare/MiddleWare.h +++ b/lib/MiddleWare/MiddleWare.h @@ -287,7 +287,13 @@ class CMiddleWare * @return A vector of pairs (local UUID, UID). */ vector_pair_string_string_t GetUUIDsOfCrash(const std::string& pUID); - + /** + * A method, which gets all needed plugin info. It can be send via DBus + * to GUI and displayed to an user. + * @param pName A Name of plugin. + * @return A map <key, vaule> + */ + map_string_string_t GetPluginInfo(const std::string& pName); /** * A method, which set a GPG finger print check. * @param pCheck Is it enabled? diff --git a/lib/MiddleWare/Plugin.h b/lib/MiddleWare/Plugin.h index b6bfb3e..ef107e3 100644 --- a/lib/MiddleWare/Plugin.h +++ b/lib/MiddleWare/Plugin.h @@ -26,7 +26,7 @@ #include <string> #include <map> -#define PLUGINS_MAGIC_NUMBER 2 +#define PLUGINS_MAGIC_NUMBER 3 #define PLUGINS_CONF_EXTENSION "conf" #define PLUGINS_LIB_EXTENSION "so" @@ -81,12 +81,13 @@ typedef struct SPluginInfo const std::string m_sDescription; /**< Plugin description.*/ const std::string m_sEmail; /**< Plugin author's email.*/ const std::string m_sWWW; /**< Plugin's home page.*/ + const std::string m_sGTKBuilder; /**< Plugin's gui description.*/ const int m_nMagicNumber; /**< Plugin magical number.*/ } plugin_info_t; #define PLUGIN_IFACE extern "C" -#define PLUGIN_INFO(type, plugin_class, name, version, description, email, www)\ +#define PLUGIN_INFO(type, plugin_class, name, version, description, email, www, gtk_builder)\ PLUGIN_IFACE CPlugin* plugin_new()\ {\ return new plugin_class();\ @@ -99,6 +100,7 @@ typedef struct SPluginInfo description,\ email,\ www,\ + gtk_builder,\ PLUGINS_MAGIC_NUMBER,\ }; diff --git a/lib/MiddleWare/PluginManager.cpp b/lib/MiddleWare/PluginManager.cpp index 8ce32f4..9f8857a 100644 --- a/lib/MiddleWare/PluginManager.cpp +++ b/lib/MiddleWare/PluginManager.cpp @@ -226,3 +226,19 @@ plugin_type_t CPluginManager::GetPluginType(const std::string& pName) return m_mapABRTPlugins[pName]->GetType(); } +map_string_string_t CPluginManager::GetPluginInfo(const std::string& pName) +{ + map_string_string_t ret; + if (m_mapABRTPlugins.find(pName) != m_mapABRTPlugins.end()) + { + ret["Type"] = plugin_type_str_t[m_mapABRTPlugins[pName]->GetType()]; + ret["Name"] = m_mapABRTPlugins[pName]->GetName(); + ret["Version"] = m_mapABRTPlugins[pName]->GetVersion(); + ret["Description"] = m_mapABRTPlugins[pName]->GetDescription(); + ret["Email"] = m_mapABRTPlugins[pName]->GetEmail(); + ret["WWW"] = m_mapABRTPlugins[pName]->GetWWW(); + ret["GTKBuilder"] = m_mapABRTPlugins[pName]->GetGTKBuilder(); + } + return ret; +} + diff --git a/lib/MiddleWare/PluginManager.h b/lib/MiddleWare/PluginManager.h index 2e2e797..574c9ff 100644 --- a/lib/MiddleWare/PluginManager.h +++ b/lib/MiddleWare/PluginManager.h @@ -31,6 +31,7 @@ #include "Reporter.h" #include "Database.h" #include "Action.h" +#include "MiddleWareTypes.h" /** * A class. It takes care of loading, registering and manipulating with @@ -130,6 +131,13 @@ class CPluginManager * @return A plugin type. */ plugin_type_t GetPluginType(const std::string& pName); + /** + * A method, which gets all needed plugin info. It can be send via DBus + * to GUI and displayed to an user. + * @param pName A Name of plugin. + * @return A map <key, vaule> + */ + map_string_string_t GetPluginInfo(const std::string& pName); }; #endif /*PLUGINMANAGER_H_*/ diff --git a/lib/MiddleWare/test.cpp b/lib/MiddleWare/test.cpp index 79cadd3..94ea5cc 100644 --- a/lib/MiddleWare/test.cpp +++ b/lib/MiddleWare/test.cpp @@ -34,6 +34,7 @@ int main(int argc, char** argv) if (argc < 2) { std::cerr << "Usage: " << argv[0] << " <DebugDumpDir>" << std::endl; + return -1; } try { @@ -46,9 +47,11 @@ int main(int argc, char** argv) middleWare.RegisterPlugin("SQLite3"); middleWare.SetDatabase("SQLite3"); middleWare.SetOpenGPGCheck(false); - middleWare.AddReporter("Logger"); - middleWare.AddAnalyzerReporter("CCpp", "Mailx"); - middleWare.AddAnalyzerAction("CCpp", "RunApp", "date"); + middleWare.AddActionOrReporter("Logger", ""); + middleWare.AddAnalyzerActionOrReporter("CCpp", "Mailx", ""); + middleWare.AddAnalyzerActionOrReporter("CCpp", "RunApp", "date"); + + std::cout << "Mailx GTKBuilder path: " << middleWare.GetPluginInfo("Mailx")["GTKBuilder"]; /* Try to save it into DB */ map_crash_info_t crashInfo; if (middleWare.SaveDebugDump(argv[1], crashInfo)) @@ -58,7 +61,6 @@ int main(int argc, char** argv) crashInfo[CD_EXECUTABLE][CD_CONTENT] << ", " << crashInfo[CD_COUNT][CD_CONTENT] << ", " << std::endl; - middleWare.Report(argv[1]); /* Get Report, so user can change data (remove private stuff) * If we do not want user interaction, just send data immediately */ |
