Ref T704, split matching utils for logging in aviation context

This commit is contained in:
Klaus Basan
2019-07-16 00:57:41 +02:00
committed by Mat Sutcliffe
parent 07712c27e8
commit 4237839bbd
16 changed files with 366 additions and 270 deletions

View File

@@ -801,7 +801,7 @@ namespace BlackMisc
{
const int icaoScore = this->getAircraftIcaoCode().calculateScore(compareModel.getAircraftIcaoCode(), log);
const int liveryScore = this->getLivery().calculateScore(compareModel.getLivery(), preferColorLiveries, log);
CMatchingUtils::addLogDetailsToList(log, this->getCallsign(), QStringLiteral("ICAO score: %1 | livery score: %2").arg(icaoScore).arg(liveryScore));
CLogUtilities::addLogDetailsToList(log, this->getCallsign(), QStringLiteral("ICAO score: %1 | livery score: %2").arg(icaoScore).arg(liveryScore));
return qRound(0.5 * (icaoScore + liveryScore));
}

View File

@@ -9,6 +9,7 @@
#include "blackmisc/simulation/aircraftmodellist.h"
#include "blackmisc/simulation/matchingutils.h"
#include "blackmisc/aviation/callsign.h"
#include "blackmisc/aviation/logutils.h"
#include "blackmisc/math/mathutils.h"
#include "blackmisc/compare.h"
#include "blackmisc/iterator.h"
@@ -1343,9 +1344,9 @@ namespace BlackMisc
ScoredModels scoreMap;
// normally prefer colors if there is no airline
CMatchingUtils::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("Prefer color liveries: '%1', airline: '%2', ignore zero scores: '%3'").arg(boolToYesNo(preferColorLiveries), remoteModel.getAirlineIcaoCodeDesignator(), boolToYesNo(ignoreZeroScores)));
CMatchingUtils::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- Start scoring in list with %1 models").arg(this->size()));
CMatchingUtils::addLogDetailsToList(log, remoteModel.getCallsign(), this->coverageSummaryForModel(remoteModel));
CLogUtilities::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("Prefer color liveries: '%1', airline: '%2', ignore zero scores: '%3'").arg(boolToYesNo(preferColorLiveries), remoteModel.getAirlineIcaoCodeDesignator(), boolToYesNo(ignoreZeroScores)));
CLogUtilities::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- Start scoring in list with %1 models").arg(this->size()));
CLogUtilities::addLogDetailsToList(log, remoteModel.getCallsign(), this->coverageSummaryForModel(remoteModel));
int c = 1;
for (const CAircraftModel &model : *this)
@@ -1354,13 +1355,13 @@ namespace BlackMisc
const int score = model.calculateScore(remoteModel, preferColorLiveries, log ? &subMsgs : nullptr);
if (ignoreZeroScores && score < 1) { continue; }
CMatchingUtils::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- Calculating #%1 '%2'---").arg(c).arg(model.getModelStringAndDbKey()));
CLogUtilities::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- Calculating #%1 '%2'---").arg(c).arg(model.getModelStringAndDbKey()));
if (log) { log->push_back(subMsgs); }
CMatchingUtils::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- End calculating #%1 ---").arg(c));
CLogUtilities::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- End calculating #%1 ---").arg(c));
c++;
scoreMap.insertMulti(score, model);
}
CMatchingUtils::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- End scoring ---"));
CLogUtilities::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- End scoring ---"));
return scoreMap;
}

View File

@@ -7,8 +7,8 @@
*/
#include "matchingutils.h"
#include "blackmisc/aviation/logutils.h"
using namespace BlackMisc;
using namespace BlackMisc::Aviation;
namespace BlackMisc
@@ -17,59 +17,7 @@ namespace BlackMisc
{
void CMatchingUtils::addLogDetailsToList(CStatusMessageList *log, const CSimulatedAircraft &remoteAircraft, const QString &message, const CLogCategoryList &extraCategories, CStatusMessage::StatusSeverity s)
{
CMatchingUtils::addLogDetailsToList(log, remoteAircraft.getCallsign(), message, extraCategories, s);
}
void CMatchingUtils::addLogDetailsToList(CStatusMessageList *log, const CCallsign &callsign, const QString &message, const CLogCategoryList &extraCategories, CStatusMessage::StatusSeverity s)
{
if (!log) { return; }
if (message.isEmpty()) { return; }
log->push_back(CMatchingUtils::logMessage(callsign, message, extraCategories, s));
}
void CMatchingUtils::addLogDetailsToList(CStatusMessageList *log, const CAircraftIcaoCode &icao, const QString &message, const CLogCategoryList &extraCategories, CStatusMessage::StatusSeverity s)
{
if (!log) { return; }
if (message.isEmpty()) { return; }
log->push_back(CMatchingUtils::logMessage(icao, message, extraCategories, s));
}
void CMatchingUtils::addLogDetailsToList(CStatusMessageList *log, const CAirlineIcaoCode &icao, const QString &message, const CLogCategoryList &extraCategories, CStatusMessage::StatusSeverity s)
{
if (!log) { return; }
if (message.isEmpty()) { return; }
log->push_back(CMatchingUtils::logMessage(icao, message, extraCategories, s));
}
void CMatchingUtils::addLogDetailsToList(CStatusMessageList *log, const CLivery &livery, const QString &message, const CLogCategoryList &extraCategories, CStatusMessage::StatusSeverity s)
{
if (!log) { return; }
if (message.isEmpty()) { return; }
log->push_back(CMatchingUtils::logMessage(livery, message, extraCategories, s));
}
CStatusMessage CMatchingUtils::logMessage(const CCallsign &callsign, const QString &message, const CLogCategoryList &extraCategories, CStatusMessage::StatusSeverity s)
{
const CStatusMessage m(categories(extraCategories), s, callsign.isEmpty() ? message.trimmed() : callsign.toQString() + ": " + message.trimmed());
return m;
}
CStatusMessage CMatchingUtils::logMessage(const CAircraftIcaoCode &icaoCode, const QString &message, const CLogCategoryList &extraCategories, CStatusMessage::StatusSeverity s)
{
const CStatusMessage m(categories(extraCategories), s, icaoCode.hasDesignator() ? icaoCode.getDesignatorDbKey() + ": " + message.trimmed() : message.trimmed());
return m;
}
CStatusMessage CMatchingUtils::logMessage(const CAirlineIcaoCode &icaoCode, const QString &message, const CLogCategoryList &extraCategories, CStatusMessage::StatusSeverity s)
{
const CStatusMessage m(categories(extraCategories), s, icaoCode.hasValidDesignator() ? icaoCode.getVDesignatorDbKey() + ": " + message.trimmed() : message.trimmed());
return m;
}
CStatusMessage CMatchingUtils::logMessage(const CLivery &livery, const QString &message, const CLogCategoryList &extraCategories, CStatusMessage::StatusSeverity s)
{
const CStatusMessage m(categories(extraCategories), s, livery.hasCombinedCode() ? livery.getCombinedCodePlusInfoAndId() + ": " + message.trimmed() : message.trimmed());
return m;
CLogUtilities::addLogDetailsToList(log, remoteAircraft.getCallsign(), message, extraCategories, s);
}
const CLogCategoryList &CMatchingUtils::defaultCategories()

View File

@@ -32,58 +32,6 @@ namespace BlackMisc
const QString &message, const CLogCategoryList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log for matching / reverse lookup
//! \threadsafe
static void addLogDetailsToList(CStatusMessageList *log, const Aviation::CCallsign &callsign,
const QString &message, const CLogCategoryList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log for matching / reverse lookup
//! \threadsafe
static void addLogDetailsToList(CStatusMessageList *log, const Aviation::CAircraftIcaoCode &icao,
const QString &message, const CLogCategoryList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log for matching / reverse lookup
//! \threadsafe
static void addLogDetailsToList(CStatusMessageList *log, const Aviation::CAirlineIcaoCode &icao,
const QString &message, const CLogCategoryList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log for matching / reverse lookup
//! \threadsafe
static void addLogDetailsToList(CStatusMessageList *log, const Aviation::CLivery &livery,
const QString &message, const CLogCategoryList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log message for matching / reverse lookup
//! \threadsafe
static CStatusMessage logMessage(
const Aviation::CCallsign &callsign,
const QString &message, const CLogCategoryList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log message for matching / reverse lookup
//! \threadsafe
static CStatusMessage logMessage(
const Aviation::CAircraftIcaoCode &icaoCode,
const QString &message, const CLogCategoryList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log message for matching / reverse lookup
//! \threadsafe
static CStatusMessage logMessage(
const Aviation::CAirlineIcaoCode &icaoCode,
const QString &message, const CLogCategoryList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log message for matching / reverse lookup
//! \threadsafe
static CStatusMessage logMessage(
const Aviation::CLivery &livery,
const QString &message, const CLogCategoryList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
private:
//! Default categories
static const CLogCategoryList &defaultCategories();

View File

@@ -8,6 +8,7 @@
#include "blackmisc/simulation/remoteaircraftprovider.h"
#include "blackmisc/simulation/matchingutils.h"
#include "blackmisc/aviation/logutils.h"
#include "blackmisc/logmessage.h"
#include "blackmisc/json.h"
#include "blackmisc/verify.h"
@@ -687,7 +688,7 @@ namespace BlackMisc
{
if (callsign.isEmpty()) { return; }
if (message.isEmpty()) { return; }
const CStatusMessage m = CMatchingUtils::logMessage(callsign, message, getLogCategories(), severity);
const CStatusMessage m = CLogUtilities::logMessage(callsign, message, getLogCategories(), severity);
this->addReverseLookupMessage(callsign, m);
}