Skip to content

Commit ba5ed5a

Browse files
committed
refactor: Use composition over inheritance
1 parent 75e5e73 commit ba5ed5a

5 files changed

+6
-54
lines changed

src/core/airspacemonitor.cpp

+4-5
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,8 @@ namespace swift::core
5757
CAirspaceMonitor::CAirspaceMonitor(IOwnAircraftProvider *ownAircraftProvider,
5858
IAircraftModelSetProvider *modelSetProvider, CFSDClient *fsdClient,
5959
QObject *parent)
60-
: CRemoteAircraftProvider(parent), COwnAircraftAware(ownAircraftProvider),
61-
CAircraftModelSetAware(modelSetProvider), m_fsdClient(fsdClient),
62-
m_analyzer(new CAirspaceAnalyzer(ownAircraftProvider, m_fsdClient, this))
60+
: CRemoteAircraftProvider(parent), COwnAircraftAware(ownAircraftProvider), m_modelSetProvider(modelSetProvider),
61+
m_fsdClient(fsdClient), m_analyzer(new CAirspaceAnalyzer(ownAircraftProvider, m_fsdClient, this))
6362
{
6463
this->setObjectName("CAirspaceMonitor");
6564
this->enableReverseLookupMessages(sApp->isDeveloperFlagSet() || CBuildConfig::isLocalDeveloperDebugBuild() ?
@@ -891,7 +890,7 @@ namespace swift::core
891890
const QString &liveryString, const QString &modelString, CAircraftModel::ModelType type,
892891
CStatusMessageList *log, bool runMatchinScript)
893892
{
894-
const int modelSetCount = this->getModelSetCount();
893+
const int modelSetCount = m_modelSetProvider->getModelSetCount();
895894
CCallsign::addLogDetailsToList(
896895
log, callsign, QStringLiteral("Reverse lookup (with FP data), model set count: %1").arg(modelSetCount),
897896
CAirspaceMonitor::getLogCategories());
@@ -901,7 +900,7 @@ namespace swift::core
901900
if (hasAnyId) { this->markAsSwiftClient(callsign); }
902901

903902
CAircraftModel lookupModel; // result
904-
const CAircraftModelList modelSet = this->getModelSet();
903+
const CAircraftModelList modelSet = m_modelSetProvider->getModelSet();
905904
const CAircraftMatcherSetup setup = m_matchingSettings.get();
906905
do {
907906
// directly check model string

src/core/airspacemonitor.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,7 @@ namespace swift::core
5858
// CAirspaceMonitor
5959
public swift::misc::network::CClientProvider, // those data will be provided from the class CAirspaceMonitor
6060
public swift::misc::simulation::COwnAircraftAware, // used to obtain in memory information about own aircraft
61-
public swift::misc::simulation::CSimulationEnvironmentAware, // elevation info etc. from simulator
62-
public swift::misc::simulation::CAircraftModelSetAware // model set for reverse lookup
61+
public swift::misc::simulation::CSimulationEnvironmentAware // elevation info etc. from simulator
6362
{
6463
// CRemoteAircraftProvider is QObject
6564
Q_OBJECT
@@ -279,6 +278,7 @@ namespace swift::core
279278
}; //!< settings
280279
QQueue<swift::misc::aviation::CCallsign> m_queryAtis; //!< query the ATIS
281280
QQueue<swift::misc::aviation::CCallsign> m_queryPilot; //!< query the pilot data
281+
misc::simulation::IAircraftModelSetProvider *m_modelSetProvider = nullptr; //!< model set for reverse lookup
282282
fsd::CFSDClient *m_fsdClient = nullptr; //!< corresponding network interface
283283
CAirspaceAnalyzer *m_analyzer = nullptr; //!< owned analyzer
284284
int m_maxDistanceNM = 125; //!< position range / FSD range

src/misc/CMakeLists.txt

-1
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,6 @@ add_library(misc SHARED
507507
simulation/ownaircraftproviderdummy.h
508508
simulation/matchingscript.cpp
509509
simulation/aircraftmodelloaderprovider.h
510-
simulation/aircraftmodelsetprovider.cpp
511510
simulation/simulatorinternals.cpp
512511
simulation/fscommon/vpilotrulesreader.h
513512
simulation/fscommon/vpilotmodelruleset.cpp

src/misc/simulation/aircraftmodelsetprovider.cpp

-23
This file was deleted.

src/misc/simulation/aircraftmodelsetprovider.h

-23
Original file line numberDiff line numberDiff line change
@@ -26,29 +26,6 @@ namespace swift::misc::simulation
2626
IAircraftModelSetProvider() = default;
2727
};
2828

29-
//! Delegating class which can be directly used to access an \sa IAircraftModelSetProvider instance
30-
class SWIFT_MISC_EXPORT CAircraftModelSetAware : public IProviderAware<IAircraftModelSetProvider>
31-
{
32-
virtual void anchor();
33-
34-
public:
35-
//! Set the provider
36-
void setAircraftModelSetProvider(IAircraftModelSetProvider *provider) { this->setProvider(provider); }
37-
38-
//! \copydoc IAircraftModelSetProvider::getModelSet
39-
CAircraftModelList getModelSet() const;
40-
41-
//! \copydoc IAircraftModelSetProvider::getModelSetCount
42-
int getModelSetCount() const;
43-
44-
protected:
45-
//! Constructor
46-
CAircraftModelSetAware(IAircraftModelSetProvider *modelSetProvider) : IProviderAware(modelSetProvider)
47-
{
48-
Q_ASSERT(modelSetProvider);
49-
}
50-
};
51-
5229
} // namespace swift::misc::simulation
5330

5431
Q_DECLARE_INTERFACE(swift::misc::simulation::IAircraftModelSetProvider,

0 commit comments

Comments
 (0)