summaryrefslogtreecommitdiffstats
path: root/lib/CommLayer
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CommLayer')
-rw-r--r--lib/CommLayer/CommLayerServer.h2
-rw-r--r--lib/CommLayer/CommLayerServerDBus.cpp29
-rw-r--r--lib/CommLayer/CommLayerServerDBus.h7
-rw-r--r--lib/CommLayer/DBusServerProxy.h43
-rw-r--r--lib/CommLayer/Observer.h3
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_ */