refs #466 Refactored automatic signal relaying into CGenericDBusInterface.

This commit is contained in:
Mathew Sutcliffe
2015-09-19 00:28:51 +01:00
parent df6b5b4929
commit 3401fff017
5 changed files with 41 additions and 34 deletions

View File

@@ -17,21 +17,7 @@ namespace BlackSimPlugin
CXBusServiceProxy::CXBusServiceProxy(QDBusConnection &connection, QObject *parent, bool dummy) : QObject(parent)
{
m_dbusInterface = new BlackMisc::CGenericDBusInterface(XBUS_SERVICE_SERVICENAME, ObjectPath(), InterfaceName(), connection, this);
if (! dummy) { relaySignals(); }
}
void CXBusServiceProxy::relaySignals()
{
// TODO can this be refactored into CGenericDBusInterface?
for (int i = 0, count = metaObject()->methodCount(); i < count; ++i)
{
auto method = metaObject()->method(i);
if (method.methodType() == QMetaMethod::Signal)
{
m_dbusInterface->connection().connect(m_dbusInterface->service(), m_dbusInterface->path(), m_dbusInterface->interface(),
method.name(), this, method.methodSignature().prepend("2"));
}
}
if (! dummy) { m_dbusInterface->relayParentSignals(); }
}
void CXBusServiceProxy::updateAirportsInRange()

View File

@@ -56,8 +56,6 @@ namespace BlackSimPlugin
private:
BlackMisc::CGenericDBusInterface *m_dbusInterface = nullptr;
void relaySignals();
// Returns a function object which can be passed to CGenericDBusInterface::callDBusAsync.
template <typename T>
std::function<void(QDBusPendingCallWatcher *)> setterCallback(T *obj)

View File

@@ -17,21 +17,7 @@ namespace BlackSimPlugin
CXBusTrafficProxy::CXBusTrafficProxy(QDBusConnection &connection, QObject *parent, bool dummy) : QObject(parent)
{
m_dbusInterface = new BlackMisc::CGenericDBusInterface(XBUS_SERVICENAME, ObjectPath(), InterfaceName(), connection, this);
if (! dummy) { relaySignals(); }
}
void CXBusTrafficProxy::relaySignals()
{
// TODO can this be refactored into CGenericDBusInterface?
for (int i = 0, count = metaObject()->methodCount(); i < count; ++i)
{
auto method = metaObject()->method(i);
if (method.methodType() == QMetaMethod::Signal)
{
m_dbusInterface->connection().connect(m_dbusInterface->service(), m_dbusInterface->path(), m_dbusInterface->interface(),
method.name(), this, method.methodSignature().prepend("2"));
}
}
if (! dummy) { m_dbusInterface->relayParentSignals(); }
}
bool CXBusTrafficProxy::initialize()

View File

@@ -51,8 +51,6 @@ namespace BlackSimPlugin
private:
BlackMisc::CGenericDBusInterface *m_dbusInterface = nullptr;
void relaySignals();
signals:
//! \copydoc XBus::CTraffic::installedModelsUpdated
void installedModelsUpdated(const QStringList &modelStrings, const QStringList &icaos, const QStringList &airlines, const QStringList &liveries);