Ref T701, IAircraftModelSetProvider 1st version

* added to matcher
* and simulator context
* in facade changed init order, as we need getCContextOwnAircraft() / getCContextSimulator()

Remark: Need 2 contexts is not ideal, but accepted for the moment
This commit is contained in:
Klaus Basan
2019-07-11 00:47:49 +02:00
committed by Mat Sutcliffe
parent 9ac457edb3
commit 0767deb41d
7 changed files with 117 additions and 9 deletions

View File

@@ -61,6 +61,7 @@ namespace BlackCore
CContextNetwork::CContextNetwork(CCoreFacadeConfig::ContextMode mode, CCoreFacade *runtime) :
IContextNetwork(mode, runtime)
{
//! \fixme KB 2019-07 bad style we implicitly depend on 2 other contexts
Q_ASSERT(this->getRuntime());
Q_ASSERT(this->getIContextOwnAircraft());
Q_ASSERT(this->getIContextOwnAircraft()->isUsingImplementingObject());
@@ -85,7 +86,11 @@ namespace BlackCore
// 3. Airspace contents
Q_ASSERT_X(this->getRuntime()->getCContextOwnAircraft(), Q_FUNC_INFO, "this and own aircraft context must be local");
m_airspace = new CAirspaceMonitor(this->getRuntime()->getCContextOwnAircraft(), m_network, this);
Q_ASSERT_X(this->getRuntime()->getCContextSimulator(), Q_FUNC_INFO, "this and own simulator context must be local");
m_airspace = new CAirspaceMonitor(
this->getRuntime()->getCContextOwnAircraft(),
this->getRuntime()->getCContextSimulator(),
m_network, this);
m_network->setClientProvider(m_airspace);
connect(m_airspace, &CAirspaceMonitor::changedAtcStationsOnline, this, &CContextNetwork::changedAtcStationsOnline, Qt::QueuedConnection);
connect(m_airspace, &CAirspaceMonitor::changedAtcStationsBooked, this, &CContextNetwork::changedAtcStationsBooked, Qt::QueuedConnection);

View File

@@ -23,6 +23,7 @@
#include "blackmisc/simulation/settings/modelmatchersettings.h"
#include "blackmisc/simulation/settings/simulatorsettings.h"
#include "blackmisc/simulation/settings/interpolationrenderingsetupsettings.h"
#include "blackmisc/simulation/aircraftmodelsetprovider.h"
#include "blackmisc/simulation/backgroundvalidation.h"
#include "blackmisc/simulation/aircraftmodellist.h"
#include "blackmisc/simulation/interpolationsetuplist.h"
@@ -62,10 +63,12 @@ namespace BlackCore
//! Network simulator concrete implementation
class BLACKCORE_EXPORT CContextSimulator :
public IContextSimulator,
public BlackMisc::Simulation::IAircraftModelSetProvider,
public BlackMisc::Simulation::CRemoteAircraftAware, // gain access to in memory remote aircraft data
public BlackMisc::CIdentifiable
{
Q_OBJECT
Q_INTERFACES(BlackMisc::Simulation::IAircraftModelSetProvider)
Q_CLASSINFO("D-Bus Interface", BLACKCORE_CONTEXTSIMULATOR_INTERFACENAME)
friend class BlackCore::CCoreFacade;
friend class IContextSimulator;
@@ -84,7 +87,6 @@ namespace BlackCore
virtual int getSimulatorStatus() const override;
virtual BlackMisc::Simulation::CSimulatorInternals getSimulatorInternals() const override;
virtual BlackMisc::Aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override;
virtual BlackMisc::Simulation::CAircraftModelList getModelSet() const override;
virtual BlackMisc::Simulation::CSimulatorInfo getModelSetLoaderSimulator() const override;
virtual void setModelSetLoaderSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator) override;
virtual BlackMisc::Simulation::CSimulatorInfo simulatorsWithInitializedModelSet() const override;
@@ -92,7 +94,6 @@ namespace BlackCore
virtual QStringList getModelSetStrings() const override;
virtual QStringList getModelSetCompleterStrings(bool sorted) const override;
virtual bool isKnownModelInSet(const QString &modelString) const override;
virtual int getModelSetCount() const override;
virtual void disableModelsForMatching(const BlackMisc::Simulation::CAircraftModelList &removedModels, bool incremental) override;
virtual BlackMisc::Simulation::CAircraftModelList getDisabledModelsForMatching() const override;
virtual void restoreDisabledModels() override;
@@ -125,6 +126,10 @@ namespace BlackCore
virtual void setMatchingSetup(const BlackMisc::Simulation::CAircraftMatcherSetup &setup) override;
virtual BlackMisc::Simulation::CAircraftMatcherSetup getMatchingSetup() const override;
virtual BlackMisc::CStatusMessageList copyFsxTerrainProbe(const BlackMisc::Simulation::CSimulatorInfo &simulator) override;
// also in IAircraftModelSetProvider
virtual BlackMisc::Simulation::CAircraftModelList getModelSet() const override;
virtual int getModelSetCount() const override;
//! @}
//! \addtogroup swiftdotcommands