Issue #77 Move all methods of CLogUtilities to other classes

This commit is contained in:
Mat Sutcliffe
2020-11-10 23:27:57 +00:00
parent b2ae19111f
commit 2c66e2215e
19 changed files with 270 additions and 347 deletions

View File

@@ -6,7 +6,6 @@
* or distributed except according to the terms contained in the LICENSE file.
*/
#include "blackmisc/aviation/logutils.h"
#include "blackmisc/aviation/aircraftsituationchange.h"
#include "blackmisc/aviation/aircrafticaocode.h"
#include "blackmisc/db/datastoreutility.h"
@@ -130,7 +129,7 @@ namespace BlackMisc
{
if (this->isDbEqual(otherCode))
{
CLogUtilities::addLogDetailsToList(log, *this, QString("Equal DB code: 100"));
addLogDetailsToList(log, *this, QString("Equal DB code: 100"));
return 100;
}
@@ -141,7 +140,7 @@ namespace BlackMisc
score += 50; // same designator
if (log)
{
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same designator: %1").arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Same designator: %1").arg(score));
}
int scoreOld = score;
@@ -150,7 +149,7 @@ namespace BlackMisc
else if (this->getRank() < 10) { score += (10 - this->getRank()); }
if (score > scoreOld)
{
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Added rank: %1").arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Added rank: %1").arg(score));
}
}
else
@@ -158,12 +157,12 @@ namespace BlackMisc
if (this->hasFamily() && this->getFamily() == otherCode.getFamily())
{
score += 40;
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Added family: %1").arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Added family: %1").arg(score));
}
else if (this->hasValidCombinedType() && otherCode.getCombinedType() == this->getCombinedType())
{
score += 30;
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Added combined code: %1").arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Added combined code: %1").arg(score));
}
else if (this->hasValidCombinedType())
{
@@ -206,7 +205,7 @@ namespace BlackMisc
{
score += 4;
}
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Added combined code parts: %1").arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Added combined code parts: %1").arg(score));
}
}
@@ -216,11 +215,11 @@ namespace BlackMisc
if (this->matchesManufacturer(otherCode.getManufacturer()))
{
score += 10;
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Matches manufacturer '%1': %2").arg(this->getManufacturer()).arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Matches manufacturer '%1': %2").arg(this->getManufacturer()).arg(score));
}
else if (this->getManufacturer().contains(otherCode.getManufacturer(), Qt::CaseInsensitive))
{
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Contains manufacturer '%1': %2").arg(this->getManufacturer()).arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Contains manufacturer '%1': %2").arg(this->getManufacturer()).arg(score));
score += 5;
}
}
@@ -229,12 +228,12 @@ namespace BlackMisc
if (this->hasCategory() && otherCode.hasCategory() && this->getCategory() == otherCode.getCategory())
{
score += 8;
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Matches military flag '%1': %2").arg(boolToYesNo(this->isMilitary())).arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Matches military flag '%1': %2").arg(boolToYesNo(this->isMilitary())).arg(score));
}
else if (this->isMilitary() == otherCode.isMilitary())
{
score += 8;
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Matches military flag '%1': %2").arg(boolToYesNo(this->isMilitary())).arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Matches military flag '%1': %2").arg(boolToYesNo(this->isMilitary())).arg(score));
}
// 0..85
return score;
@@ -852,6 +851,20 @@ namespace BlackMisc
return e == 'P' || e == 'E' || e == 'T';
}
CStatusMessage CAircraftIcaoCode::logMessage(const CAircraftIcaoCode &icaoCode, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
static const CLogCategoryList cats({ CLogCategories::aviation() });
const CStatusMessage m(cats.with(CLogCategoryList::fromQStringList(extraCategories)), s, icaoCode.hasDesignator() ? icaoCode.getDesignatorDbKey() + ": " + message.trimmed() : message.trimmed());
return m;
}
void CAircraftIcaoCode::addLogDetailsToList(CStatusMessageList *log, const CAircraftIcaoCode &icao, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
if (!log) { return; }
if (message.isEmpty()) { return; }
log->push_back(logMessage(icao, message, extraCategories, s));
}
CAircraftIcaoCode CAircraftIcaoCode::fromDatabaseJson(const QJsonObject &json, const QString &prefix)
{
if (!existsKey(json, prefix))

View File

@@ -356,6 +356,19 @@ namespace BlackMisc
//! Engine tye is Electric, Piston, TurboProp
static bool isEPTEngineType(const QChar engineType);
//! Specialized log message for matching / reverse lookup
//! \threadsafe
static CStatusMessage logMessage(
const CAircraftIcaoCode &icaoCode,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log for matching / reverse lookup
//! \threadsafe
static void addLogDetailsToList(CStatusMessageList *log, const CAircraftIcaoCode &icao,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! From our database JSON format
static CAircraftIcaoCode fromDatabaseJson(const QJsonObject &json, const QString &prefix = QString());

View File

@@ -8,7 +8,6 @@
#include "airlineicaocode.h"
#include "callsign.h"
#include "logutils.h"
#include "blackmisc/db/datastoreutility.h"
#include "blackmisc/comparefunctions.h"
#include "blackmisc/icons.h"
@@ -325,6 +324,20 @@ namespace BlackMisc
return removeChars(n, [](QChar c) { return !c.isLetterOrNumber(); });
}
CStatusMessage CAirlineIcaoCode::logMessage(const CAirlineIcaoCode &icaoCode, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
static const CLogCategoryList cats({ CLogCategories::aviation() });
const CStatusMessage m(cats.with(CLogCategoryList::fromQStringList(extraCategories)), s, icaoCode.hasValidDesignator() ? icaoCode.getVDesignatorDbKey() + ": " + message.trimmed() : message.trimmed());
return m;
}
void CAirlineIcaoCode::addLogDetailsToList(CStatusMessageList *log, const CAirlineIcaoCode &icao, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
if (!log) { return; }
if (message.isEmpty()) { return; }
log->push_back(logMessage(icao, message, extraCategories, s));
}
QString CAirlineIcaoCode::getCombinedStringWithKey() const
{
return (this->hasValidDesignator() ? this->getVDesignator() : QString()) %
@@ -396,7 +409,7 @@ namespace BlackMisc
{
if (this->isDbEqual(otherCode))
{
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("DB equal score: 100"));
addLogDetailsToList(log, *this, QStringLiteral("DB equal score: 100"));
return 100;
}
const bool bothFromDb = this->isLoadedFromDb() && otherCode.isLoadedFromDb();
@@ -404,31 +417,31 @@ namespace BlackMisc
if (otherCode.hasValidDesignator() && this->getDesignator() == otherCode.getDesignator())
{
score += 60;
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same designator: %1").arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Same designator: %1").arg(score));
}
// only for DB values we check VA
if (bothFromDb && this->isVirtualAirline() == otherCode.isVirtualAirline())
{
score += 20;
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("VA equality: %1").arg(score));
addLogDetailsToList(log, *this, QStringLiteral("VA equality: %1").arg(score));
}
// consider the various names
if (this->hasName() && this->getName() == otherCode.getName())
{
score += 20;
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same name '%1': %2").arg(this->getName()).arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Same name '%1': %2").arg(this->getName()).arg(score));
}
else if (this->hasTelephonyDesignator() && this->getTelephonyDesignator() == otherCode.getTelephonyDesignator())
{
score += 15;
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same telephony '%1': %2").arg(this->getTelephonyDesignator()).arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Same telephony '%1': %2").arg(this->getTelephonyDesignator()).arg(score));
}
else if (this->hasSimplifiedName() && this->getSimplifiedName() == otherCode.getSimplifiedName())
{
score += 10;
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same simplified name '%1': %2").arg(this->getSimplifiedName()).arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Same simplified name '%1': %2").arg(this->getSimplifiedName()).arg(score));
}
return score;
}

View File

@@ -257,6 +257,19 @@ namespace BlackMisc
//! Normalize string as airline designator
static QString normalizeDesignator(const QString &candidate);
//! Specialized log message for matching / reverse lookup
//! \threadsafe
static CStatusMessage logMessage(
const CAirlineIcaoCode &icaoCode,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log for matching / reverse lookup
//! \threadsafe
static void addLogDetailsToList(CStatusMessageList *log, const CAirlineIcaoCode &icao,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! From our DB JSON
static CAirlineIcaoCode fromDatabaseJson(const QJsonObject &json, const QString &prefix = QString());

View File

@@ -7,7 +7,6 @@
*/
#include "blackmisc/aviation/airlineicaocodelist.h"
#include "blackmisc/aviation/logutils.h"
#include "blackmisc/logcategories.h"
#include "blackmisc/country.h"
#include "blackmisc/range.h"
@@ -207,52 +206,52 @@ namespace BlackMisc
reduced = false;
if (this->isEmpty())
{
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % u" Empty input list, cannot reduce", getLogCategories()); }
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % u" Empty input list, cannot reduce", getLogCategories()); }
return *this;
}
if (telephony.isEmpty() && airlineName.isEmpty() && countryIso.isEmpty())
{
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % u" No name/telephony/country, cannot reduce " % QString::number(this->size()) % u" entries", getLogCategories()); }
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % u" No name/telephony/country, cannot reduce " % QString::number(this->size()) % u" entries", getLogCategories()); }
return *this;
}
CAirlineIcaoCodeList step1Data = airlineName.isEmpty() ? *this : this->findByNamesOrTelephonyDesignator(airlineName);
if (step1Data.size() < 1 || step1Data.size() == this->size())
{
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" cannot reduce by '%1'").arg(airlineName), getLogCategories()); }
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" cannot reduce by '%1'").arg(airlineName), getLogCategories()); }
step1Data = *this;
}
else
{
reduced = true;
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" reduced by '%1'").arg(airlineName), getLogCategories()); }
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" reduced by '%1'").arg(airlineName), getLogCategories()); }
}
if (step1Data.size() == 1) { return step1Data; }
CAirlineIcaoCodeList step2Data = telephony.isEmpty() ? step1Data : step1Data.findByNamesOrTelephonyDesignator(telephony);
if (step2Data.size() < 1 || step2Data.size() == this->size())
{
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" cannot reduce by name '%1'").arg(telephony), getLogCategories()); }
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" cannot reduce by name '%1'").arg(telephony), getLogCategories()); }
step2Data = step1Data;
}
else
{
reduced = true;
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" reduced by telephony '%1'").arg(telephony), getLogCategories()); }
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" reduced by telephony '%1'").arg(telephony), getLogCategories()); }
}
if (step2Data.size() == 1) { return step2Data; }
CAirlineIcaoCodeList step3Data = countryIso.isEmpty() ? step2Data : step2Data.findByCountryIsoCode(countryIso);
if (step3Data.size() < 1 || step3Data.size() == this->size())
{
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" cannot reduce by country '%1'").arg(countryIso), getLogCategories()); }
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" cannot reduce by country '%1'").arg(countryIso), getLogCategories()); }
step3Data = step2Data;
}
else
{
reduced = true;
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" reduced by '%1'").arg(countryIso), getLogCategories()); }
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" reduced by '%1'").arg(countryIso), getLogCategories()); }
}
return step3Data;
}

View File

@@ -9,6 +9,7 @@
#include "blackmisc/aviation/callsign.h"
#include "blackmisc/mixin/mixincompare.h"
#include "blackmisc/stringutils.h"
#include "blackmisc/statusmessagelist.h"
#include <QRegularExpression>
#include <QRegularExpressionMatch>
@@ -101,6 +102,20 @@ namespace BlackMisc
CCallsign::atcSuffixToIcon(callsign.getSuffix());
}
CStatusMessage CCallsign::logMessage(const CCallsign &callsign, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
static const CLogCategoryList cats({ CLogCategories::aviation() });
const CStatusMessage m(cats.with(CLogCategoryList::fromQStringList(extraCategories)), s, callsign.isEmpty() ? message.trimmed() : callsign.toQString() + ": " + message.trimmed());
return m;
}
void CCallsign::addLogDetailsToList(CStatusMessageList *log, const CCallsign &callsign, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
if (!log) { return; }
if (message.isEmpty()) { return; }
log->push_back(logMessage(callsign, message, extraCategories, s));
}
const CIcon &CCallsign::atcSuffixToIcon(const QString &suffix)
{
if (suffix.length() < 3) { return CIcon::iconByIndex(CIcons::NetworkRoleUnknown); }

View File

@@ -15,6 +15,7 @@
#include "blackmisc/metaclass.h"
#include "blackmisc/propertyindexref.h"
#include "blackmisc/valueobject.h"
#include "blackmisc/statusmessage.h"
#include <QMetaType>
#include <QString>
#include <tuple>
@@ -23,6 +24,8 @@ class QStringList;
namespace BlackMisc
{
class CStatusMessageList;
namespace Aviation
{
//! Value object encapsulating information of a callsign.
@@ -204,6 +207,19 @@ namespace BlackMisc
//! Representing icon
static const CIcon &convertToIcon(const CCallsign &callsign);
//! Specialized log message for matching / reverse lookup
//! \threadsafe
static CStatusMessage logMessage(
const CCallsign &callsign,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log for matching / reverse lookup
//! \threadsafe
static void addLogDetailsToList(CStatusMessageList *log, const CCallsign &callsign,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Register metadata
static void registerMetadata();

View File

@@ -8,7 +8,6 @@
#include "blackmisc/db/datastoreutility.h"
#include "blackmisc/aviation/livery.h"
#include "blackmisc/aviation/logutils.h"
#include "blackmisc/mixin/mixincompare.h"
#include "blackmisc/comparefunctions.h"
#include "blackmisc/logcategories.h"
@@ -26,7 +25,6 @@
using namespace BlackMisc;
using namespace BlackMisc::Db;
using namespace BlackMisc::PhysicalQuantities;
namespace BlackMisc
{
@@ -350,6 +348,20 @@ namespace BlackMisc
return temp;
}
CStatusMessage CLivery::logMessage(const CLivery &livery, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
static const CLogCategoryList cats({ CLogCategories::aviation() });
const CStatusMessage m(cats.with(CLogCategoryList::fromQStringList(extraCategories)), s, livery.hasCombinedCode() ? livery.getCombinedCodePlusInfoAndId() + ": " + message.trimmed() : message.trimmed());
return m;
}
void CLivery::addLogDetailsToList(CStatusMessageList *log, const CLivery &livery, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
if (!log) { return; }
if (message.isEmpty()) { return; }
log->push_back(logMessage(livery, message, extraCategories, s));
}
QVariant CLivery::propertyByIndex(BlackMisc::CPropertyIndexRef index) const
{
if (index.isMyself()) { return QVariant::fromValue(*this); }
@@ -440,7 +452,7 @@ namespace BlackMisc
{
if (this->isDbEqual(otherLivery))
{
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Equal DB code: 100"));
addLogDetailsToList(log, *this, QStringLiteral("Equal DB code: 100"));
return 100;
}
@@ -456,7 +468,7 @@ namespace BlackMisc
// 2 color liveries 25..85
score = 25;
score += 60 * colorMultiplier;
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("2 color liveries, color multiplier %1: %2").arg(colorMultiplier).arg(score));
addLogDetailsToList(log, *this, QStringLiteral("2 color liveries, color multiplier %1: %2").arg(colorMultiplier).arg(score));
}
else if (this->isAirlineLivery() && otherLivery.isAirlineLivery())
{
@@ -467,10 +479,10 @@ namespace BlackMisc
// same ICAO at least means 30, max 50
score = qRound(0.5 * this->getAirlineIcaoCode().calculateScore(otherLivery.getAirlineIcaoCode(), log));
score += 25 * colorMultiplier;
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("2 airline liveries, color multiplier %1: %2").arg(colorMultiplier).arg(score));
addLogDetailsToList(log, *this, QStringLiteral("2 airline liveries, color multiplier %1: %2").arg(colorMultiplier).arg(score));
if (this->isMilitary() == otherLivery.isMilitary())
{
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Mil.flag '%1' matches: %2").arg(boolToYesNo(this->isMilitary())).arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Mil.flag '%1' matches: %2").arg(boolToYesNo(this->isMilitary())).arg(score));
score += 10;
}
}
@@ -481,7 +493,7 @@ namespace BlackMisc
// 25 is weaker as same ICAO code / 2 from above
score = preferColorLiveries ? 25 : 0;
score += 25 * colorMultiplier; // needs to be the same as in 2 airlines
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Color/airline mixed, color multiplier %1: %2").arg(colorMultiplier).arg(score));
addLogDetailsToList(log, *this, QStringLiteral("Color/airline mixed, color multiplier %1: %2").arg(colorMultiplier).arg(score));
}
return score;
}

View File

@@ -218,6 +218,19 @@ namespace BlackMisc
//! The code for a temporary livery
static const QString &tempLiveryCode();
//! Specialized log message for matching / reverse lookup
//! \threadsafe
static CStatusMessage logMessage(
const CLivery &livery,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log for matching / reverse lookup
//! \threadsafe
static void addLogDetailsToList(CStatusMessageList *log, const CLivery &livery,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
private:
CAirlineIcaoCode m_airline; //!< corresponding airline, if any
QString m_combinedCode; //!< livery code and pseudo airline ICAO code

View File

@@ -1,81 +0,0 @@
/* Copyright (C) 2019
* swift project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution. No part of swift project, including this file, may be copied, modified, propagated,
* or distributed except according to the terms contained in the LICENSE file.
*/
#include "logutils.h"
namespace BlackMisc
{
namespace Aviation
{
void CLogUtilities::addLogDetailsToList(CStatusMessageList *log, const CCallsign &callsign, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
if (!log) { return; }
if (message.isEmpty()) { return; }
log->push_back(CLogUtilities::logMessage(callsign, message, extraCategories, s));
}
void CLogUtilities::addLogDetailsToList(CStatusMessageList *log, const CAircraftIcaoCode &icao, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
if (!log) { return; }
if (message.isEmpty()) { return; }
log->push_back(CLogUtilities::logMessage(icao, message, extraCategories, s));
}
void CLogUtilities::addLogDetailsToList(CStatusMessageList *log, const CAirlineIcaoCode &icao, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
if (!log) { return; }
if (message.isEmpty()) { return; }
log->push_back(CLogUtilities::logMessage(icao, message, extraCategories, s));
}
void CLogUtilities::addLogDetailsToList(CStatusMessageList *log, const CLivery &livery, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
if (!log) { return; }
if (message.isEmpty()) { return; }
log->push_back(CLogUtilities::logMessage(livery, message, extraCategories, s));
}
CStatusMessage CLogUtilities::logMessage(const CCallsign &callsign, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
const CStatusMessage m(categories(extraCategories), s, callsign.isEmpty() ? message.trimmed() : callsign.toQString() + ": " + message.trimmed());
return m;
}
CStatusMessage CLogUtilities::logMessage(const CAircraftIcaoCode &icaoCode, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
const CStatusMessage m(categories(extraCategories), s, icaoCode.hasDesignator() ? icaoCode.getDesignatorDbKey() + ": " + message.trimmed() : message.trimmed());
return m;
}
CStatusMessage CLogUtilities::logMessage(const CAirlineIcaoCode &icaoCode, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
const CStatusMessage m(categories(extraCategories), s, icaoCode.hasValidDesignator() ? icaoCode.getVDesignatorDbKey() + ": " + message.trimmed() : message.trimmed());
return m;
}
CStatusMessage CLogUtilities::logMessage(const CLivery &livery, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
{
const CStatusMessage m(categories(extraCategories), s, livery.hasCombinedCode() ? livery.getCombinedCodePlusInfoAndId() + ": " + message.trimmed() : message.trimmed());
return m;
}
const CLogCategoryList &CLogUtilities::defaultCategories()
{
static const CLogCategoryList cats({ CLogCategories::aviation() });
return cats;
}
CLogCategoryList CLogUtilities::categories(const QStringList &extraCategories)
{
if (extraCategories.isEmpty()) { return defaultCategories(); }
CLogCategoryList cats(defaultCategories());
cats.push_back(CLogCategoryList::fromQStringList(extraCategories));
return cats;
}
} // ns
} // ns

View File

@@ -1,95 +0,0 @@
/* Copyright (C) 2019
* swift project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution. No part of swift project, including this file, may be copied, modified, propagated,
* or distributed except according to the terms contained in the LICENSE file.
*/
//! \file
#ifndef BLACKMISC_AVIATION_MATCHINGUTILS_H
#define BLACKMISC_AVIATION_MATCHINGUTILS_H
#include "blackmisc/aviation/livery.h"
#include "blackmisc/aviation/aircrafticaocode.h"
#include "blackmisc/aviation/airlineicaocode.h"
#include "blackmisc/aviation/callsign.h"
#include "blackmisc/statusmessagelist.h"
#include "blackmisc/blackmiscexport.h"
#include <QString>
namespace BlackMisc
{
namespace Aviation
{
/*!
* Log.utilities
*/
class BLACKMISC_EXPORT CLogUtilities
{
public:
//! Specialized log for matching / reverse lookup
//! \threadsafe
static void addLogDetailsToList(CStatusMessageList *log, const CCallsign &callsign,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log for matching / reverse lookup
//! \threadsafe
static void addLogDetailsToList(CStatusMessageList *log, const CAircraftIcaoCode &icao,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log for matching / reverse lookup
//! \threadsafe
static void addLogDetailsToList(CStatusMessageList *log, const CAirlineIcaoCode &icao,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log for matching / reverse lookup
//! \threadsafe
static void addLogDetailsToList(CStatusMessageList *log, const CLivery &livery,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log message for matching / reverse lookup
//! \threadsafe
static CStatusMessage logMessage(
const CCallsign &callsign,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log message for matching / reverse lookup
//! \threadsafe
static CStatusMessage logMessage(
const CAircraftIcaoCode &icaoCode,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log message for matching / reverse lookup
//! \threadsafe
static CStatusMessage logMessage(
const CAirlineIcaoCode &icaoCode,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
//! Specialized log message for matching / reverse lookup
//! \threadsafe
static CStatusMessage logMessage(
const CLivery &livery,
const QString &message, const QStringList &extraCategories = {},
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
private:
//! Default categories
static const CLogCategoryList &defaultCategories();
//! Categories
static CLogCategoryList categories(const QStringList &extraCategories);
};
} // ns
} // ns
#endif // guard