mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 12:55:33 +08:00
Ref T312, added check listener function in contexts
This commit is contained in:
@@ -135,6 +135,9 @@ namespace BlackCore
|
||||
//! Return list of available simulator plugins
|
||||
virtual BlackMisc::Simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() const = 0;
|
||||
|
||||
//! Check all listeners enabled if simulator is connected
|
||||
virtual int checkListeners() = 0;
|
||||
|
||||
//! Load and start specific simulator plugin
|
||||
virtual bool startSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) = 0;
|
||||
|
||||
|
||||
@@ -30,21 +30,21 @@ namespace BlackCore
|
||||
CContextSimulatorEmpty(CCoreFacade *runtime) : IContextSimulator(CCoreFacadeConfig::NotUsed, runtime) {}
|
||||
|
||||
public slots:
|
||||
//! \copydoc IContextSimulator::getSimulatorPluginInfo()
|
||||
//! \copydoc IContextSimulator::getSimulatorPluginInfo
|
||||
virtual BlackMisc::Simulation::CSimulatorPluginInfo getSimulatorPluginInfo() const override
|
||||
{
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return BlackMisc::Simulation::CSimulatorPluginInfo();
|
||||
}
|
||||
|
||||
//! \copydoc IContextSimulator::getAvailableSimulatorPlugins()
|
||||
//! \copydoc IContextSimulator::getAvailableSimulatorPlugins
|
||||
virtual BlackMisc::Simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() const override
|
||||
{
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return BlackMisc::Simulation::CSimulatorPluginInfoList();
|
||||
}
|
||||
|
||||
//! \copydoc IContextSimulator::startSimulatorPlugin()
|
||||
//! \copydoc IContextSimulator::startSimulatorPlugin
|
||||
virtual bool startSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override
|
||||
{
|
||||
Q_UNUSED(simulatorInfo);
|
||||
@@ -52,7 +52,13 @@ namespace BlackCore
|
||||
return false;
|
||||
}
|
||||
|
||||
//! \copydoc IContextSimulator::getSimulatorStatus()
|
||||
//! \copydoc IContextSimulator::checkListeners
|
||||
virtual int checkListeners() override
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
//! \copydoc IContextSimulator::getSimulatorStatus
|
||||
virtual int getSimulatorStatus() const override
|
||||
{
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
|
||||
@@ -125,7 +125,14 @@ namespace BlackCore
|
||||
|
||||
ISimulatorListener *listener = m_plugins->getListener(simulatorInfo.getIdentifier());
|
||||
Q_ASSERT(listener);
|
||||
QMetaObject::invokeMethod(listener, "stop");
|
||||
QMetaObject::invokeMethod(listener, "stop", Qt::QueuedConnection);
|
||||
}
|
||||
|
||||
int CContextSimulator::checkListeners()
|
||||
{
|
||||
if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
||||
if (!m_plugins) { return 0; }
|
||||
return m_plugins->checkAvailableListeners();
|
||||
}
|
||||
|
||||
int CContextSimulator::getSimulatorStatus() const
|
||||
@@ -461,7 +468,7 @@ namespace BlackCore
|
||||
{
|
||||
Q_ASSERT_X(!listener->parent(), Q_FUNC_INFO, "Objects with parent cannot be moved to thread");
|
||||
|
||||
const bool c = connect(listener, &ISimulatorListener::simulatorStarted, this, &CContextSimulator::onSimulatorStarted);
|
||||
const bool c = connect(listener, &ISimulatorListener::simulatorStarted, this, &CContextSimulator::onSimulatorStarted, Qt::QueuedConnection);
|
||||
if (!c)
|
||||
{
|
||||
CLogMessage(this).error("Unable to use '%1'") << simulatorInfo.toQString();
|
||||
@@ -487,7 +494,7 @@ namespace BlackCore
|
||||
Q_ASSERT(!p.isUnspecified());
|
||||
if (p.isValid())
|
||||
{
|
||||
listenForSimulator(p);
|
||||
this->listenForSimulator(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,6 +75,7 @@ namespace BlackCore
|
||||
virtual BlackMisc::Simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() const override;
|
||||
virtual bool startSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
||||
virtual void stopSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
||||
virtual int checkListeners() override;
|
||||
virtual int getSimulatorStatus() const override;
|
||||
virtual BlackMisc::Simulation::CSimulatorInternals getSimulatorInternals() const override;
|
||||
virtual BlackMisc::Aviation::CAirportList getAirportsInRange() const override;
|
||||
|
||||
@@ -211,6 +211,11 @@ namespace BlackCore
|
||||
m_dBusInterface->callDBus(QLatin1String("stopSimulatorPlugin"), simulatorInfo);
|
||||
}
|
||||
|
||||
int CContextSimulatorProxy::checkListeners()
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<int>(QLatin1String("checkListeners"));
|
||||
}
|
||||
|
||||
CPixmap CContextSimulatorProxy::iconForModel(const QString &modelString) const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<CPixmap>(QLatin1String("iconForModel"), modelString);
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
#include "blackmisc/pq/length.h"
|
||||
#include "blackmisc/pq/time.h"
|
||||
#include "blackmisc/simulation/aircraftmodellist.h"
|
||||
#include "blackmisc/simulation/simulatorplugininfo.h"
|
||||
#include "blackmisc/simulation/simulatorplugininfolist.h"
|
||||
#include "blackmisc/simulation/simulatorinternals.h"
|
||||
|
||||
@@ -61,6 +60,7 @@ namespace BlackCore
|
||||
virtual BlackMisc::Simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() const override;
|
||||
virtual bool startSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
||||
virtual void stopSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) override;
|
||||
virtual int checkListeners() override;
|
||||
virtual int getSimulatorStatus() const override;
|
||||
virtual BlackMisc::Aviation::CAirportList getAirportsInRange() const override;
|
||||
virtual BlackMisc::Simulation::CAircraftModelList getModelSet() const override;
|
||||
|
||||
Reference in New Issue
Block a user