summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-02-20 14:26:01 +0100
committerJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-02-20 14:26:01 +0100
commit483e1b7cb3fd8f9f834c256e3b97096de39399e8 (patch)
tree1ca5e512e92dfb427c45763183cc69efd8e2dc55
parent9be931c65dcb3f6a3e210bc4c7c52feacf3f61fd (diff)
downloadbrowser-poc-483e1b7cb3fd8f9f834c256e3b97096de39399e8.tar.gz
Added DBus client for errorlogger
-rw-r--r--common/errorloggerdbus.cpp101
-rw-r--r--common/errorloggerdbus.h37
2 files changed, 138 insertions, 0 deletions
diff --git a/common/errorloggerdbus.cpp b/common/errorloggerdbus.cpp
new file mode 100644
index 0000000..8b2f697
--- /dev/null
+++ b/common/errorloggerdbus.cpp
@@ -0,0 +1,101 @@
+/**
+ * Copyright (C) 2014, Pelagicore
+ *
+ * Author: Jonatan Pålsson <jonatan.palsson@pelagicore.com>
+ *
+ * This file is part of the GENIVI project Browser Proof-Of-Concept
+ * For further information, see http://genivi.org/
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <QDBusMetaType>
+#include <QtQml>
+#include <QDBusReply>
+
+#include "errorloggerdbus.h"
+
+#include "../common/browserdefs.h"
+
+ErrorLoggerDbus::ErrorLoggerDbus(QObject *parent) :
+ QObject(parent), m_instanceId("1")
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ registertypes();
+}
+
+void ErrorLoggerDbus::registertypes() {
+ qDBusRegisterMetaType<conn::brw::ErrorItemList>();
+ qDBusRegisterMetaType<conn::brw::ErrorItem>();
+ qDBusRegisterMetaType<conn::brw::ERROR_SORT_TYPE>();
+}
+
+void ErrorLoggerDbus::connectdbussession(QString id) {
+ qDebug() << __PRETTY_FUNCTION__ << id;
+
+ m_instanceId = id;
+
+ QString *dbusservicename = new QString("genivi.poc.browser" + m_instanceId);
+
+ m_errorlogger = new conn::brw::IErrorLogger(*dbusservicename, "/Browser/IErrorLogger",
+ QDBusConnection::sessionBus(), this);
+ if(!m_errorlogger->isValid()) {
+ qDebug() << "failed create object /Browser/IErrorLogger";
+ }
+
+ connect(m_errorlogger, SIGNAL(onNewErrorItem(conn::brw::ErrorItem)),
+ this, SIGNAL(onNewErrorItem(conn::brw::ErrorItem)));
+ connect(m_errorlogger, SIGNAL(onErrorListChanged(void)),
+ this, SIGNAL(onErrorListChanged(void)));
+}
+
+uint ErrorLoggerDbus::getItemsCount(qlonglong start, qlonglong end) {
+ qDebug() << __PRETTY_FUNCTION__;
+ uint ret = 0;
+
+ if (!m_errorlogger){
+ qDebug() << "ErrorLogger not initialized, call connectdbussession first";
+ return ret;
+ }
+
+ QDBusReply<uint> reply = m_errorlogger->getItemsCount(start, end);
+
+ if(reply.isValid()) {
+ ret = reply.value();
+ qDebug() << "ERROR_IDS " << ret;
+ } else {
+ QDBusError error = reply.error();
+ qDebug() << "ERROR " << error.name() << error.message();
+ }
+ return ret;
+}
+conn::brw::ErrorItemList ErrorLoggerDbus::getItems(qlonglong timeFrom,
+ qlonglong timeTo,
+ conn::brw::ERROR_SORT_TYPE type,
+ uint startIndex,
+ uint itemsCount) {
+ qDebug() << __PRETTY_FUNCTION__;
+ conn::brw::ErrorItemList list;
+
+ if (!m_errorlogger){
+ qDebug() << "ErrorLogger not initialized, call connectdbussession first";
+ return list;
+ }
+
+ QDBusPendingReply<conn::brw::ERROR_IDS, conn::brw::ErrorItemList> reply =
+ m_errorlogger->getItems(timeFrom, timeTo, type, startIndex, itemsCount);
+
+ if(reply.isValid()) {
+ conn::brw::ERROR_IDS ret;
+ ret = reply.value();
+ list = reply.argumentAt<1>();
+ qDebug() << "ERROR_IDS " << ret;
+ } else {
+ QDBusError error = reply.error();
+ qDebug() << "ERROR " << error.name() << error.message();
+ }
+ return list;
+}
diff --git a/common/errorloggerdbus.h b/common/errorloggerdbus.h
new file mode 100644
index 0000000..0f80394
--- /dev/null
+++ b/common/errorloggerdbus.h
@@ -0,0 +1,37 @@
+#ifndef ERRRORLOGGERDBUS_H
+#define ERRRORLOGGERDBUS_H
+
+#include <QObject>
+#include "../browser/errorlogger.h"
+#include "browserdefs.h"
+#include "ierrorlogger_interface.h"
+
+class ErrorLoggerDbus : public QObject
+{
+ Q_OBJECT
+
+public:
+ explicit ErrorLoggerDbus(QObject *parent = 0);
+
+ Q_INVOKABLE uint getItemsCount(qlonglong, qlonglong);
+ Q_INVOKABLE conn::brw::ErrorItemList getItems(qlonglong timeFrom,
+ qlonglong timeTo,
+ conn::brw::ERROR_SORT_TYPE type,
+ uint startIndex,
+ uint itemsCount);
+
+ Q_INVOKABLE void connectdbussession(QString id);
+
+signals:
+ void onNewErrorItem(conn::brw::ErrorItem);
+ void onErrorListChanged();
+
+private:
+ QString m_instanceId;
+ void registertypes();
+ conn::brw::IErrorLogger *m_errorlogger;
+};
+
+
+
+#endif /* ERRRORLOGGERDBUS_H */