mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-18 03:15:34 +08:00
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:
committed by
Klaus Basan
parent
41ac858df8
commit
cfc9c3166e
@@ -35,9 +35,6 @@ namespace XSwiftBus
|
|||||||
//! \warning Before calling this method, make sure that a valid DBus connection was set.
|
//! \warning Before calling this method, make sure that a valid DBus connection was set.
|
||||||
void registerDBusObjectPath(const std::string &interfaceName, const std::string &objectPath);
|
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:
|
protected:
|
||||||
//! DBus message handler
|
//! DBus message handler
|
||||||
virtual DBusHandlerResult dbusMessageHandler(const CDBusMessage &message) = 0;
|
virtual DBusHandlerResult dbusMessageHandler(const CDBusMessage &message) = 0;
|
||||||
|
|||||||
@@ -156,9 +156,9 @@ namespace XSwiftBus
|
|||||||
{
|
{
|
||||||
auto *plugin = static_cast<CPlugin *>(refcon);
|
auto *plugin = static_cast<CPlugin *>(refcon);
|
||||||
plugin->m_dbusDispatcher.runOnce();
|
plugin->m_dbusDispatcher.runOnce();
|
||||||
if (plugin->m_service) { plugin->m_service->processDBus(); }
|
if (plugin->m_service) { plugin->m_service->process(); }
|
||||||
if (plugin->m_weather) { plugin->m_weather->processDBus(); }
|
if (plugin->m_weather) { plugin->m_weather->process(); }
|
||||||
if (plugin->m_traffic) { plugin->m_traffic->processDBus(); }
|
if (plugin->m_traffic) { plugin->m_traffic->process(); }
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -625,7 +625,7 @@ namespace XSwiftBus
|
|||||||
return DBUS_HANDLER_RESULT_HANDLED;
|
return DBUS_HANDLER_RESULT_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CService::processDBus()
|
int CService::process()
|
||||||
{
|
{
|
||||||
invokeQueuedDBusCalls();
|
invokeQueuedDBusCalls();
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -226,7 +226,8 @@ namespace XSwiftBus
|
|||||||
//! \copydoc XSwiftBus::CMessageBoxControl::toggle
|
//! \copydoc XSwiftBus::CMessageBoxControl::toggle
|
||||||
void toggleMessageBoxVisibility() { m_messages.toggle(); }
|
void toggleMessageBoxVisibility() { m_messages.toggle(); }
|
||||||
|
|
||||||
int processDBus() override;
|
//! Perform generic processing
|
||||||
|
int process();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
DBusHandlerResult dbusMessageHandler(const CDBusMessage &message) override;
|
DBusHandlerResult dbusMessageHandler(const CDBusMessage &message) override;
|
||||||
|
|||||||
@@ -723,7 +723,7 @@ namespace XSwiftBus
|
|||||||
return DBUS_HANDLER_RESULT_HANDLED;
|
return DBUS_HANDLER_RESULT_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CTraffic::processDBus()
|
int CTraffic::process()
|
||||||
{
|
{
|
||||||
invokeQueuedDBusCalls();
|
invokeQueuedDBusCalls();
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -118,7 +118,8 @@ namespace XSwiftBus
|
|||||||
//! Sets the aircraft with callsign to be followed in plane view
|
//! Sets the aircraft with callsign to be followed in plane view
|
||||||
void setFollowedAircraft(const std::string &callsign);
|
void setFollowedAircraft(const std::string &callsign);
|
||||||
|
|
||||||
int processDBus() override;
|
//! Perform generic processing
|
||||||
|
int process();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
DBusHandlerResult dbusMessageHandler(const CDBusMessage &message) override;
|
DBusHandlerResult dbusMessageHandler(const CDBusMessage &message) override;
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ namespace XSwiftBus
|
|||||||
return DBUS_HANDLER_RESULT_HANDLED;
|
return DBUS_HANDLER_RESULT_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CWeather::processDBus()
|
int CWeather::process()
|
||||||
{
|
{
|
||||||
invokeQueuedDBusCalls();
|
invokeQueuedDBusCalls();
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -97,7 +97,9 @@ namespace XSwiftBus
|
|||||||
//! \param turbulence Amount of turbulence [0,10].
|
//! \param turbulence Amount of turbulence [0,10].
|
||||||
void setWindLayer(int layer, int altitude, double direction, int speed, int shearDirection, int shearSpeed, int turbulence);
|
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:
|
protected:
|
||||||
virtual DBusHandlerResult dbusMessageHandler(const CDBusMessage &message) override;
|
virtual DBusHandlerResult dbusMessageHandler(const CDBusMessage &message) override;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user