Ref T362, Ref T348 matcher saves removed models (if any) when destructed

This commit is contained in:
Klaus Basan
2018-09-21 01:58:51 +02:00
parent 5e99e557c6
commit 8a5112e48d
2 changed files with 17 additions and 8 deletions

View File

@@ -20,6 +20,7 @@
#include "blackmisc/logcategorylist.h" #include "blackmisc/logcategorylist.h"
#include "blackmisc/logmessage.h" #include "blackmisc/logmessage.h"
#include "blackmisc/statusmessagelist.h" #include "blackmisc/statusmessagelist.h"
#include "blackmisc/directoryutils.h"
#include <QList> #include <QList>
#include <QStringList> #include <QStringList>
@@ -39,16 +40,23 @@ namespace BlackCore
return cats; return cats;
} }
CAircraftMatcher::CAircraftMatcher(const CAircraftMatcherSetup &setup, QObject *parent) : CAircraftMatcher::CAircraftMatcher(const CAircraftMatcherSetup &setup, QObject *parent) : QObject(parent), m_setup(setup)
QObject(parent),
m_setup(setup)
{ } { }
CAircraftMatcher::CAircraftMatcher(QObject *parent) : CAircraftMatcher(CAircraftMatcherSetup(), parent) CAircraftMatcher::CAircraftMatcher(QObject *parent) : CAircraftMatcher(CAircraftMatcherSetup(), parent)
{ } { }
CAircraftMatcher::~CAircraftMatcher() CAircraftMatcher::~CAircraftMatcher()
{ } {
if (!m_removedModels.isEmpty())
{
// log the models
const QString fileName("removed models %1.json");
const QString ts = QDateTime::currentDateTimeUtc().toString("yyyyMMddHHmmss");
const QString json = m_removedModels.toJsonString();
CFileUtils::writeStringToFile(json, CFileUtils::appendFilePathsAndFixUnc(CDirectoryUtils::logDirectory(), fileName.arg(ts)));
}
}
bool CAircraftMatcher::setSetup(const CAircraftMatcherSetup &setup) bool CAircraftMatcher::setSetup(const CAircraftMatcherSetup &setup)
{ {
@@ -671,11 +679,11 @@ namespace BlackCore
if (remoteAircraft.hasCallsign() && remoteAircraft.hasModelString()) if (remoteAircraft.hasCallsign() && remoteAircraft.hasModelString())
{ {
const QString modelString = remoteAircraft.getModelString(); const QString modelString = remoteAircraft.getModelString();
const int r = m_modelSet.removeModelWithString(modelString, Qt::CaseInsensitive); const bool r = m_modelSet.removeModelWithString(modelString, Qt::CaseInsensitive);
if (r > 0) if (r)
{ {
CLogMessage(this).warning("Removed model '%1' from matching model set") << modelString; CLogMessage(this).warning("Removed model '%1' from matching model set") << modelString;
m_removedModels.insert(modelString); m_removedModels.replaceOrAddModelWithString(remoteAircraft.getModel(), Qt::CaseInsensitive);
} }
} }
} }

View File

@@ -54,6 +54,7 @@ namespace BlackCore
CAircraftMatcher(QObject *parent = nullptr); CAircraftMatcher(QObject *parent = nullptr);
//! Destructor //! Destructor
//! \remark saves a log of removed models if any
virtual ~CAircraftMatcher(); virtual ~CAircraftMatcher();
//! Set the setup //! Set the setup
@@ -262,10 +263,10 @@ namespace BlackCore
BlackMisc::Simulation::CAircraftMatcherSetup m_setup; //!< setup BlackMisc::Simulation::CAircraftMatcherSetup m_setup; //!< setup
BlackMisc::Simulation::CAircraftModel m_defaultModel; //!< model to be used as default model BlackMisc::Simulation::CAircraftModel m_defaultModel; //!< model to be used as default model
BlackMisc::Simulation::CAircraftModelList m_modelSet; //!< models used for model matching BlackMisc::Simulation::CAircraftModelList m_modelSet; //!< models used for model matching
BlackMisc::Simulation::CAircraftModelList m_removedModels; //!< removed models
BlackMisc::Simulation::CSimulatorInfo m_simulator; //!< simulator (optional) BlackMisc::Simulation::CSimulatorInfo m_simulator; //!< simulator (optional)
BlackMisc::Simulation::CMatchingStatistics m_statistics; //!< matching statistics BlackMisc::Simulation::CMatchingStatistics m_statistics; //!< matching statistics
QString m_modelSetInfo; //!< info string QString m_modelSetInfo; //!< info string
QSet<QString> m_removedModels; //!< models have been removed
}; };
} // namespace } // namespace