From 703ff9d3bb5a95660ee8a89befffe748cee0c133 Mon Sep 17 00:00:00 2001 From: Jussi Kuokkanen Date: Mon, 1 Jun 2020 17:24:07 +0300 Subject: [PATCH] daemon: add adaptor for base node --- src/tuxclockerd/Adaptors.hpp | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/tuxclockerd/Adaptors.hpp b/src/tuxclockerd/Adaptors.hpp index d78532f..645de3f 100644 --- a/src/tuxclockerd/Adaptors.hpp +++ b/src/tuxclockerd/Adaptors.hpp @@ -22,13 +22,12 @@ Q_DECLARE_METATYPE(TCDBus::Result) class DynamicReadableAdaptor : public QDBusAbstractAdaptor { public: - explicit DynamicReadableAdaptor(QObject *obj, DynamicReadable dr, DeviceNode node) : - QDBusAbstractAdaptor(obj), m_deviceNode(node) { + explicit DynamicReadableAdaptor(QObject *obj, DynamicReadable dr) : + QDBusAbstractAdaptor(obj) { // Ideally this should be moved somewhere else but QMetaType does not handle namespaces well qDBusRegisterMetaType>(); m_dynamicReadable = dr; } - QString hash_() {return QString::fromStdString(m_deviceNode.hash);} public Q_SLOTS: TCDBus::Result value() { QVariant v; @@ -55,9 +54,7 @@ public Q_SLOTS: private: Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.tuxclocker.DynamicReadable") - Q_PROPERTY(QString hash READ hash_) - DeviceNode m_deviceNode; DynamicReadable m_dynamicReadable; }; @@ -67,8 +64,8 @@ Q_DECLARE_METATYPE(TCDBus::Result) class AssignableAdaptor : public QDBusAbstractAdaptor { public: - explicit AssignableAdaptor(QObject *obj, Assignable a, DeviceNode devNode) : - QDBusAbstractAdaptor(obj), m_assignable(a), m_devNode(devNode) { + explicit AssignableAdaptor(QObject *obj, Assignable a) : + QDBusAbstractAdaptor(obj), m_assignable(a) { qDBusRegisterMetaType(); qDBusRegisterMetaType(); qDBusRegisterMetaType>(); @@ -103,7 +100,6 @@ public: m_dbusAssignableInfo = QDBusVariant(a_info); } QDBusVariant assignableInfo_() {return m_dbusAssignableInfo;} - QString hash_() {return QString::fromStdString(m_devNode.hash);} public Q_SLOTS: TCDBus::Result assign(QDBusVariant arg_) { auto v = arg_.variant(); @@ -137,16 +133,30 @@ private: Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.tuxclocker.Assignable") Q_PROPERTY(QDBusVariant assignableInfo READ assignableInfo_) - Q_PROPERTY(QString hash READ hash_) Assignable m_assignable; - DeviceNode m_devNode; QDBusVariant m_dbusAssignableInfo; }; Q_DECLARE_METATYPE(TCDBus::DeviceNode) Q_DECLARE_METATYPE(TCDBus::FlatTreeNode) +// Holds the name and hash of nodes, even if they don't implement an interface +class NodeAdaptor : public QDBusAbstractAdaptor { +public: + NodeAdaptor(QObject *obj, DeviceNode devNode) : QDBusAbstractAdaptor(obj), + m_devNode(devNode) {} + QString name_() {return QString::fromStdString(m_devNode.name);} + QString hash_() {return QString::fromStdString(m_devNode.hash);} +private: + Q_OBJECT + Q_CLASSINFO("D-Bus Interface", "org.tuxclocker.Node") + Q_PROPERTY(QString hash READ hash_) + Q_PROPERTY(QString name READ name_) + + DeviceNode m_devNode; +}; + // Holds the main tree and returns it as a list (because parsing XML sucks) class MainAdaptor : public QDBusAbstractAdaptor { public: