diff options
| author | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-07-20 17:01:01 +0200 |
|---|---|---|
| committer | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-07-20 17:01:01 +0200 |
| commit | c581668d59fc839f42a9e42ff4b371b02789aaa3 (patch) | |
| tree | 7191f4085b1763b01dd4f813caedd93bae157ba8 /lib/CommLayer/DBusServerProxy.h | |
| parent | ede175cb92ada7e1235b9b1ee8777d7d1ad32613 (diff) | |
| download | abrt-c581668d59fc839f42a9e42ff4b371b02789aaa3.tar.gz abrt-c581668d59fc839f42a9e42ff4b371b02789aaa3.tar.xz abrt-c581668d59fc839f42a9e42ff4b371b02789aaa3.zip | |
Daemon: added threaded CreateReport -> breaks CLI!
Diffstat (limited to 'lib/CommLayer/DBusServerProxy.h')
| -rw-r--r-- | lib/CommLayer/DBusServerProxy.h | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/lib/CommLayer/DBusServerProxy.h b/lib/CommLayer/DBusServerProxy.h index e8e43c5..cc91766 100644 --- a/lib/CommLayer/DBusServerProxy.h +++ b/lib/CommLayer/DBusServerProxy.h @@ -20,7 +20,8 @@ #include <dbus-c++/glib-integration.h> #include "DBusCommon.h" #include <map> -#include <map> +#include <iostream> +#include <stdlib.h> class CDBusServer_adaptor : public DBus::InterfaceAdaptor @@ -34,6 +35,7 @@ public: register_method(CDBusServer_adaptor, CreateReport, _CreateReport_stub); register_method(CDBusServer_adaptor, Report, _Report_stub); register_method(CDBusServer_adaptor, DeleteDebugDump, _DeleteDebugDump_stub); + register_method(CDBusServer_adaptor, GetJobResult, _GetJobResult_stub); } /* reveal Interface introspection when we stabilize the API */ /* @@ -89,8 +91,11 @@ public: */ virtual vector_crash_infos_t GetCrashInfos(const std::string &pDBusSender) = 0; virtual map_crash_report_t CreateReport(const std::string &pUUID,const std::string &pDBusSender) = 0; + virtual uint64_t CreateReport_t(const std::string &pUUID,const std::string &pDBusSender) = 0; virtual bool Report(map_crash_report_t pReport, const std::string &pDBusSender) = 0; virtual bool DeleteDebugDump(const std::string& pUUID, const std::string& pDBusSender) = 0; + virtual map_crash_report_t GetJobResult(uint64_t pJobID, const std::string& pDBusSender) = 0; + public: /* signal emitters for this interface @@ -111,6 +116,15 @@ public: wi << arg1; emit_signal(sig); } + + + void JobDone(uint64_t job_id) + { + ::DBus::SignalMessage sig("JobDone"); + ::DBus::MessageIter wi = sig.writer(); + wi << job_id; + emit_signal(sig); + } void Error(const std::string& arg1) { @@ -119,6 +133,15 @@ public: wi << arg1; emit_signal(sig); } + + void Update(const std::string pDest, const std::string& pMessage) + { + ::DBus::SignalMessage sig("Update"); + ::DBus::MessageIter wi = sig.writer(); + wi << pDest; + wi << pMessage; + emit_signal(sig); + } private: @@ -127,7 +150,7 @@ private: DBus::Message _GetCrashInfos_stub(const DBus::CallMessage &call) { DBus::MessageIter ri = call.reader(); - + //FIXME: @@@REMOVE!! vector_crash_infos_t argout1 = GetCrashInfos(call.sender()); DBus::ReturnMessage reply(call); DBus::MessageIter wi = reply.writer(); @@ -140,7 +163,9 @@ private: DBus::MessageIter ri = call.reader(); std::string argin1; ri >> argin1; - map_crash_report_t argout1 = CreateReport(argin1,call.sender()); + uint64_t argout1 = CreateReport_t(argin1,call.sender()); + if(sizeof (uint64_t) != 8) abort (); + //map_crash_report_t argout1 = CreateReport(argin1,call.sender()); DBus::ReturnMessage reply(call); DBus::MessageIter wi = reply.writer(); wi << argout1; @@ -170,5 +195,17 @@ private: wi << argout1; return reply; } + + DBus::Message _GetJobResult_stub(const DBus::CallMessage &call) + { + DBus::MessageIter ri = call.reader(); + uint64_t job_id; + ri >> job_id; + map_crash_report_t report = GetJobResult(job_id,call.sender()); + DBus::ReturnMessage reply(call); + DBus::MessageIter wi = reply.writer(); + wi << report; + return reply; + } }; |
