diff options
Diffstat (limited to 'lib/CommLayer')
-rw-r--r-- | lib/CommLayer/CommLayerServer.h | 2 | ||||
-rw-r--r-- | lib/CommLayer/CommLayerServerDBus.cpp | 29 | ||||
-rw-r--r-- | lib/CommLayer/CommLayerServerDBus.h | 7 | ||||
-rw-r--r-- | lib/CommLayer/DBusServerProxy.h | 43 | ||||
-rw-r--r-- | lib/CommLayer/Observer.h | 3 |
5 files changed, 79 insertions, 5 deletions
diff --git a/lib/CommLayer/CommLayerServer.h b/lib/CommLayer/CommLayerServer.h index 6305e48f..09cccf60 100644 --- a/lib/CommLayer/CommLayerServer.h +++ b/lib/CommLayer/CommLayerServer.h @@ -45,6 +45,8 @@ class CCommLayerServer{ virtual void Crash(const std::string& arg1) {} virtual void AnalyzeComplete(map_crash_report_t arg1) {} virtual void Error(const std::string& arg1) {} + virtual void Update(const std::string& pDest, const std::string& pMessage) {}; + virtual void JobDone(uint64_t pJobID) {}; }; #endif //COMMLAYERSERVER_H_ diff --git a/lib/CommLayer/CommLayerServerDBus.cpp b/lib/CommLayer/CommLayerServerDBus.cpp index 139575ba..d3e00c1f 100644 --- a/lib/CommLayer/CommLayerServerDBus.cpp +++ b/lib/CommLayer/CommLayerServerDBus.cpp @@ -39,7 +39,8 @@ vector_crash_infos_t CCommLayerServerDBus::GetCrashInfos(const std::string &pSen crashInfos = m_pObserver->GetCrashInfos(to_string(unix_uid)); return crashInfos; } - +//FIXME: fix CLI and remove this +/* map_crash_report_t CCommLayerServerDBus::CreateReport(const std::string &pUUID,const std::string &pSender) { unsigned long unix_uid = m_pConn->sender_unix_uid(pSender.c_str()); @@ -47,6 +48,14 @@ map_crash_report_t CCommLayerServerDBus::CreateReport(const std::string &pUUID,c crashReport = m_pObserver->CreateReport(pUUID, to_string(unix_uid)); return crashReport; } +*/ +uint64_t CCommLayerServerDBus::CreateReport_t(const std::string &pUUID,const std::string &pSender) +{ + unsigned long unix_uid = m_pConn->sender_unix_uid(pSender.c_str()); + map_crash_report_t crashReport; + uint64_t job_id = m_pObserver->CreateReport_t(pUUID, to_string(unix_uid)); + return job_id; +} bool CCommLayerServerDBus::Report(map_crash_report_t pReport,const std::string &pSender) { @@ -62,6 +71,14 @@ bool CCommLayerServerDBus::DeleteDebugDump(const std::string& pUUID, const std:: return true; } +map_crash_report_t CCommLayerServerDBus::GetJobResult(uint64_t pJobID, const std::string& pSender) +{ + unsigned long unix_uid = m_pConn->sender_unix_uid(pSender.c_str()); + map_crash_report_t crashReport; + crashReport = m_pObserver->GetJobResult(pJobID,to_string(unix_uid)); + return crashReport; +} + void CCommLayerServerDBus::Crash(const std::string& arg) { CDBusServer_adaptor::Crash(arg); @@ -76,3 +93,13 @@ void CCommLayerServerDBus::Error(const std::string& arg1) { CDBusServer_adaptor::Error(arg1); } + +void CCommLayerServerDBus::Update(const std::string& pDest, const std::string& pMessage) +{ + CDBusServer_adaptor::Update(pDest, pMessage); +} + +void CCommLayerServerDBus::JobDone(uint64_t pJobID) +{ + CDBusServer_adaptor::JobDone(pJobID); +} diff --git a/lib/CommLayer/CommLayerServerDBus.h b/lib/CommLayer/CommLayerServerDBus.h index 86f68601..17b7fdc6 100644 --- a/lib/CommLayer/CommLayerServerDBus.h +++ b/lib/CommLayer/CommLayerServerDBus.h @@ -20,12 +20,17 @@ class CCommLayerServerDBus virtual ~CCommLayerServerDBus(); virtual vector_crash_infos_t GetCrashInfos(const std::string &pSender); - virtual map_crash_report_t CreateReport(const std::string &pUUID,const std::string &pSender); + /*FIXME: fix CLI and remove this stub*/ + virtual map_crash_report_t CreateReport(const std::string &pUUID,const std::string &pSender){map_crash_report_t retval; return retval;}; + virtual uint64_t CreateReport_t(const std::string &pUUID,const std::string &pSender); virtual bool Report(map_crash_report_t pReport,const std::string &pSender); virtual bool DeleteDebugDump(const std::string& pUUID, const std::string& pSender); + virtual map_crash_report_t GetJobResult(uint64_t pJobID, const std::string& pSender); virtual void Crash(const std::string& arg1); virtual void AnalyzeComplete(map_crash_report_t arg1); virtual void Error(const std::string& arg1); + virtual void Update(const std::string& pDest, const std::string& pMessage); + virtual void JobDone(uint64_t pJobID); }; diff --git a/lib/CommLayer/DBusServerProxy.h b/lib/CommLayer/DBusServerProxy.h index e8e43c56..cc91766e 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; + } }; diff --git a/lib/CommLayer/Observer.h b/lib/CommLayer/Observer.h index 7803e8af..9b476f1f 100644 --- a/lib/CommLayer/Observer.h +++ b/lib/CommLayer/Observer.h @@ -3,6 +3,7 @@ #include "CrashTypes.h" #include <string> +#include <stdint.h> class CObserver { public: @@ -14,8 +15,10 @@ class CObserver { /* this should be implemented in daemon */ virtual vector_crash_infos_t GetCrashInfos(const std::string &pSender) = 0; virtual map_crash_report_t CreateReport(const std::string &pUUID,const std::string &pSender) = 0; + virtual uint64_t CreateReport_t(const std::string &pUUID,const std::string &pSender){std::cout << "DEFAULT OBSERVER";return 0;}; virtual bool Report(map_crash_report_t pReport, const std::string &pSender) = 0; virtual bool DeleteDebugDump(const std::string& pUUID, const std::string& pSender) = 0; + virtual map_crash_report_t GetJobResult(uint64_t pJobID, const std::string &pSender) = 0; }; #endif /* OBSERVER_H_ */ |