Decouple flightloop processing from DBus

There are needs to not only run DBus tasks, but also different generic
tasks during the processing loop.
This commit is contained in:
Roland Winklmeier
2018-09-24 17:09:48 +02:00
committed by Klaus Basan
parent 41ac858df8
commit cfc9c3166e
8 changed files with 13 additions and 12 deletions

View File

@@ -35,9 +35,6 @@ namespace XSwiftBus
//! \warning Before calling this method, make sure that a valid DBus connection was set.
void registerDBusObjectPath(const std::string &interfaceName, const std::string &objectPath);
//! Process DBus messages. Needs to be implemented by deriving classes
virtual int processDBus() = 0;
protected:
//! DBus message handler
virtual DBusHandlerResult dbusMessageHandler(const CDBusMessage &message) = 0;

View File

@@ -156,9 +156,9 @@ namespace XSwiftBus
{
auto *plugin = static_cast<CPlugin *>(refcon);
plugin->m_dbusDispatcher.runOnce();
if (plugin->m_service) { plugin->m_service->processDBus(); }
if (plugin->m_weather) { plugin->m_weather->processDBus(); }
if (plugin->m_traffic) { plugin->m_traffic->processDBus(); }
if (plugin->m_service) { plugin->m_service->process(); }
if (plugin->m_weather) { plugin->m_weather->process(); }
if (plugin->m_traffic) { plugin->m_traffic->process(); }
return -1;
}

View File

@@ -625,7 +625,7 @@ namespace XSwiftBus
return DBUS_HANDLER_RESULT_HANDLED;
}
int CService::processDBus()
int CService::process()
{
invokeQueuedDBusCalls();
return 1;

View File

@@ -226,7 +226,8 @@ namespace XSwiftBus
//! \copydoc XSwiftBus::CMessageBoxControl::toggle
void toggleMessageBoxVisibility() { m_messages.toggle(); }
int processDBus() override;
//! Perform generic processing
int process();
protected:
DBusHandlerResult dbusMessageHandler(const CDBusMessage &message) override;

View File

@@ -723,7 +723,7 @@ namespace XSwiftBus
return DBUS_HANDLER_RESULT_HANDLED;
}
int CTraffic::processDBus()
int CTraffic::process()
{
invokeQueuedDBusCalls();
return 1;

View File

@@ -118,7 +118,8 @@ namespace XSwiftBus
//! Sets the aircraft with callsign to be followed in plane view
void setFollowedAircraft(const std::string &callsign);
int processDBus() override;
//! Perform generic processing
int process();
protected:
DBusHandlerResult dbusMessageHandler(const CDBusMessage &message) override;

View File

@@ -241,7 +241,7 @@ namespace XSwiftBus
return DBUS_HANDLER_RESULT_HANDLED;
}
int CWeather::processDBus()
int CWeather::process()
{
invokeQueuedDBusCalls();
return 1;

View File

@@ -97,7 +97,9 @@ namespace XSwiftBus
//! \param turbulence Amount of turbulence [0,10].
void setWindLayer(int layer, int altitude, double direction, int speed, int shearDirection, int shearSpeed, int turbulence);
virtual int processDBus() override;
//! Perform generic processing
int process();
protected:
virtual DBusHandlerResult dbusMessageHandler(const CDBusMessage &message) override;