update dbus code to be more generic

This commit is contained in:
Michael Zanetti 2018-01-17 15:10:19 +01:00
parent 0f46245230
commit 59f57c38db
10 changed files with 22 additions and 50 deletions

View File

@ -74,23 +74,6 @@ HardwareManagerImplementation::HardwareManagerImplementation(QObject *parent) :
if (m_bluetoothLowEnergyManager->available())
setResourceEnabled(m_bluetoothLowEnergyManager, true);
// Register D-Bus interface for enable/disable hardware resources
// FIXME: use HardwareManagerDBusService in the source tree instead of direct implementation
bool status = QDBusConnection::systemBus().registerService("io.guh.nymead");
if (!status) {
qCWarning(dcHardware()) << "Failed to register HardwareManager D-Bus service. HardwareManager D-Bus control will not work.";
return;
}
status = QDBusConnection::systemBus().registerObject("/io/guh/nymead/HardwareManager", this, QDBusConnection::ExportScriptableContents);
if (!status) {
qCWarning(dcHardware()) << "Failed to register HardwareManager D-Bus object. HardwareManager D-Bus control will not work.";
return;
}
qCDebug(dcHardware()) << "HardwareManager D-Bus service set up.";
}
HardwareManagerImplementation::~HardwareManagerImplementation()
@ -127,15 +110,4 @@ BluetoothLowEnergyManager *HardwareManagerImplementation::bluetoothLowEnergyMana
return m_bluetoothLowEnergyManager;
}
void HardwareManagerImplementation::EnableBluetooth(const bool &enabled)
{
qCDebug(dcHardware()) << "Bluetooth hardware resource" << (enabled ? "enabled" : "disabled");
if (enabled) {
setResourceEnabled(m_bluetoothLowEnergyManager, true);
} else {
setResourceEnabled(m_bluetoothLowEnergyManager, false);
}
}
}

View File

@ -43,7 +43,6 @@ namespace nymeaserver {
class HardwareManagerImplementation : public HardwareManager
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "io.guh.nymead")
public:
explicit HardwareManagerImplementation(QObject *parent = nullptr);
@ -56,9 +55,6 @@ public:
QtAvahiServiceBrowser *avahiBrowser() override;
BluetoothLowEnergyManager *bluetoothLowEnergyManager() override;
// D-Bus method for enable/disable bluetooth support
Q_SCRIPTABLE void EnableBluetooth(const bool &enabled);
private:
QNetworkAccessManager *m_networkAccessManager = nullptr;

View File

@ -75,7 +75,6 @@ HEADERS += nymeacore.h \
OpenSSL/OpenSSLConnection.hpp \
janusconnector.h \
pushbuttondbusservice.h \
nymeadbusservice.h \
hardwaremanagerimplementation.h \
hardware/plugintimermanagerimplementation.h \
hardware/radio433/radio433brennenstuhl.h \
@ -154,7 +153,6 @@ SOURCES += nymeacore.cpp \
OpenSSL/OpenSSLConnection.cpp \
janusconnector.cpp \
pushbuttondbusservice.cpp \
nymeadbusservice.cpp \
hardwaremanagerimplementation.cpp \
hardware/plugintimermanagerimplementation.cpp \
hardware/radio433/radio433brennenstuhl.cpp \

View File

@ -27,3 +27,8 @@ BluetoothLowEnergyManager::BluetoothLowEnergyManager(QObject *parent) :
HardwareResource("Bluetooth LE manager", parent)
{
}
void BluetoothLowEnergyManager::EnableBluetooth(bool enabled)
{
setEnabled(enabled);
}

View File

@ -50,6 +50,8 @@ public:
// Bluetooth device registration methods
virtual BluetoothLowEnergyDevice *registerDevice(const QBluetoothDeviceInfo &deviceInfo, const QLowEnergyController::RemoteAddressType &addressType = QLowEnergyController::RandomAddress) = 0;
virtual void unregisterDevice(BluetoothLowEnergyDevice *bluetoothDevice) = 0;
Q_SCRIPTABLE void EnableBluetooth(bool enabled);
};
#endif // BLUETOOTHLOWENERGYMANAGER_H

View File

@ -25,7 +25,7 @@
#include "loggingcategories.h"
HardwareResource::HardwareResource(const QString &name, QObject *parent) :
QObject(parent),
NymeaDBusService("/io/guh/nymead/HardwareManager/" + name, parent),
m_name(name)
{

View File

@ -24,8 +24,9 @@
#define HARDWARERESOURCE_H
#include <QObject>
#include "nymeadbusservice.h"
class HardwareResource : public QObject
class HardwareResource : public NymeaDBusService
{
Q_OBJECT

View File

@ -71,6 +71,7 @@ HEADERS += devicemanager.h \
hardwareresource.h \
plugintimer.h \
hardwaremanager.h \
nymeadbusservice.h \
SOURCES += devicemanager.cpp \
loggingcategories.cpp \
@ -127,6 +128,8 @@ SOURCES += devicemanager.cpp \
hardwareresource.cpp \
plugintimer.cpp \
hardwaremanager.cpp \
nymeadbusservice.cpp \
# install plugininfo python script for libnymea-dev
generateplugininfo.files = $$top_srcdir/plugins/nymea-generateplugininfo

View File

@ -20,23 +20,25 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include "nymeadbusservice.h"
#include "usermanager.h"
#include "loggingcategories.h"
namespace nymeaserver {
QDBusConnection NymeaDBusService::s_connection = QDBusConnection::systemBus();
NymeaDBusService::NymeaDBusService(const QString &objectPath, UserManager *parent) : QObject(parent)
NymeaDBusService::NymeaDBusService(const QString &objectPath, QObject *parent) : QObject(parent)
{
bool status = s_connection.registerService("io.guh.nymead");
if (!status) {
qCWarning(dcApplication()) << "Failed to register D-Bus service.";
return;
}
status = s_connection.registerObject(objectPath, this, QDBusConnection::ExportScriptableContents);
QString finalObjectPath;
foreach (const QString &part, objectPath.split(' ')) {
finalObjectPath.append(part.at(0).toUpper());
finalObjectPath.append(part.right(part.length() - 1));
}
status = s_connection.registerObject(finalObjectPath, this, QDBusConnection::ExportScriptableContents);
if (!status) {
qCWarning(dcApplication()) << "Failed to register D-Bus object.";
qCWarning(dcApplication()) << "Failed to register D-Bus object:" << finalObjectPath;
return;
}
m_isValid = true;
@ -61,4 +63,3 @@ void NymeaDBusService::setBusType(QDBusConnection::BusType busType)
}
}
}

View File

@ -26,18 +26,13 @@
#include <QDBusConnection>
#include <QDBusContext>
namespace nymeaserver {
class UserManager;
class NymeaDBusService : public QObject, public QDBusContext
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "io.guh.nymead")
public:
explicit NymeaDBusService(const QString &objectPath, UserManager *parent = nullptr);
explicit NymeaDBusService(const QString &objectPath, QObject *parent = nullptr);
static void setBusType(QDBusConnection::BusType busType);
@ -52,6 +47,5 @@ private:
};
}
#endif // NYMEADBUSSERVICE_H