From 4237839bbd01b33e35ff782bdd5b62824118b315 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 16 Jul 2019 00:57:41 +0200 Subject: [PATCH] Ref T704, split matching utils for logging in aviation context --- src/blackcore/aircraftmatcher.cpp | 198 +++++++++--------- src/blackcore/airspacemonitor.cpp | 53 ++--- .../context/contextsimulatorimpl.cpp | 11 +- .../components/modelmatchercomponent.cpp | 5 +- src/blackmisc/aviation/aircrafticaocode.cpp | 22 +- src/blackmisc/aviation/airlineicaocode.cpp | 14 +- .../aviation/airlineicaocodelist.cpp | 9 + src/blackmisc/aviation/livery.cpp | 12 +- src/blackmisc/aviation/logutils.cpp | 81 +++++++ src/blackmisc/aviation/logutils.h | 95 +++++++++ src/blackmisc/logcategory.h | 10 +- src/blackmisc/simulation/aircraftmodel.cpp | 2 +- .../simulation/aircraftmodellist.cpp | 13 +- src/blackmisc/simulation/matchingutils.cpp | 56 +---- src/blackmisc/simulation/matchingutils.h | 52 ----- .../simulation/remoteaircraftprovider.cpp | 3 +- 16 files changed, 366 insertions(+), 270 deletions(-) create mode 100644 src/blackmisc/aviation/logutils.cpp create mode 100644 src/blackmisc/aviation/logutils.h diff --git a/src/blackcore/aircraftmatcher.cpp b/src/blackcore/aircraftmatcher.cpp index 7a4622e96..b651f59b7 100644 --- a/src/blackcore/aircraftmatcher.cpp +++ b/src/blackcore/aircraftmatcher.cpp @@ -14,6 +14,7 @@ #include "blackmisc/simulation/matchingutils.h" #include "blackmisc/aviation/aircrafticaocode.h" #include "blackmisc/aviation/airlineicaocode.h" +#include "blackmisc/aviation/logutils.h" #include "blackmisc/aviation/callsign.h" #include "blackmisc/aviation/livery.h" #include "blackmisc/fileutils.h" @@ -76,38 +77,38 @@ namespace BlackCore const QString &airlineName, const QString &airlineTelephony, bool useWebServices, CStatusMessageList *log) { - CMatchingUtils::addLogDetailsToList(log, callsign, - QStringLiteral("Find airline designator from 1st: '%1' 2nd: '%2' callsign: '%3', use airline callsign: %4, name: '%5' telephony: '%6' use web service: %7"). - arg(primaryIcao, secondaryIcao, callsign.toQString(), boolToYesNo(airlineFromCallsign), airlineName, airlineTelephony, boolToYesNo(useWebServices)), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, + QStringLiteral("Find airline designator from 1st: '%1' 2nd: '%2' callsign: '%3', use airline callsign: %4, name: '%5' telephony: '%6' use web service: %7"). + arg(primaryIcao, secondaryIcao, callsign.toQString(), boolToYesNo(airlineFromCallsign), airlineName, airlineTelephony, boolToYesNo(useWebServices)), getLogCategories()); CAirlineIcaoCode code; do { if (CAircraftMatcher::isValidAirlineIcaoDesignator(primaryIcao, useWebServices)) { + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using primary airline ICAO '%1'").arg(primaryIcao), getLogCategories()); code = stringToAirlineIcaoObject(callsign, primaryIcao, airlineName, airlineTelephony, useWebServices, log); break; } if (CAircraftMatcher::isValidAirlineIcaoDesignator(secondaryIcao, useWebServices)) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Using secondary airline ICAO '%1', primary '%2' not valid").arg(secondaryIcao, primaryIcao), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using secondary airline ICAO '%1', primary '%2' not valid").arg(secondaryIcao, primaryIcao), getLogCategories()); code = stringToAirlineIcaoObject(callsign, secondaryIcao, airlineName, airlineTelephony, useWebServices, log); break; } - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Two invalid airline ICAO codes (primary/secondary) '%1', '%2'").arg(primaryIcao, secondaryIcao), getLogCategories()); - + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Two invalid airline ICAO codes (primary/secondary) '%1', '%2'").arg(primaryIcao, secondaryIcao), getLogCategories()); if (airlineFromCallsign) { QString flightNumber; const QString airlinePrefix = callsign.getAirlinePrefix(flightNumber); if (airlinePrefix.isEmpty() || flightNumber.isEmpty()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Callsign '%1' cannot be split in airline '%1'/ flight number '%2'").arg(callsign.toQString(), flightNumber), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Callsign '%1' cannot be split in airline '%1'/ flight number '%2'").arg(callsign.toQString(), flightNumber), getLogCategories()); break; } if (CAircraftMatcher::isValidAirlineIcaoDesignator(airlinePrefix, useWebServices)) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Using airline from callsign '%1', suffix: '%2'").arg(callsign.toQString(), airlinePrefix), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using airline from callsign '%1', suffix: '%2'").arg(callsign.toQString(), airlinePrefix), getLogCategories()); code = stringToAirlineIcaoObject(callsign, airlinePrefix, airlineName, airlineTelephony, useWebServices, log); break; } @@ -117,27 +118,27 @@ namespace BlackCore if (code.hasValidDesignator()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Resolved to airline designator: %1").arg(code.toQString(true))); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Resolved to airline designator: %1").arg(code.toQString(true))); } else { - CMatchingUtils::addLogDetailsToList(log, callsign, - QStringLiteral("Cannot find airline designator from 1st: '%1' 2nd: '%2' callsign: '%3', use airline callsign: %4, name: '%5' telephony: '%6' use web service: %7"). - arg(primaryIcao, secondaryIcao, callsign.toQString(), boolToYesNo(airlineFromCallsign), airlineName, airlineTelephony, boolToYesNo(useWebServices)), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, + QStringLiteral("Cannot find airline designator from 1st: '%1' 2nd: '%2' callsign: '%3', use airline callsign: %4, name: '%5' telephony: '%6' use web service: %7"). + arg(primaryIcao, secondaryIcao, callsign.toQString(), boolToYesNo(airlineFromCallsign), airlineName, airlineTelephony, boolToYesNo(useWebServices)), getLogCategories()); } return code; } CAirlineIcaoCode CAircraftMatcher::failoverValidAirlineIcaoDesignator(const CCallsign &callsign, const QString &primaryIcao, const QString &secondaryIcao, bool airlineFromCallsign, const QString &airlineName, const QString &airlineTelephony, const CAircraftModelList &models, CStatusMessageList *log) { - CMatchingUtils::addLogDetailsToList(log, callsign, - QStringLiteral("Find airline designator from 1st: '%1' 2nd: '%2' callsign: '%3', use airline callsign: %4, airline name: '%5' telephony: '%6', models: %7"). - arg(primaryIcao, secondaryIcao, callsign.toQString(), boolToYesNo(airlineFromCallsign), airlineName, airlineTelephony, models.sizeString()), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, + QStringLiteral("Find airline designator from 1st: '%1' 2nd: '%2' callsign: '%3', use airline callsign: %4, airline name: '%5' telephony: '%6', models: %7"). + arg(primaryIcao, secondaryIcao, callsign.toQString(), boolToYesNo(airlineFromCallsign), airlineName, airlineTelephony, models.sizeString()), getLogCategories()); if (models.isEmpty()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("No models to find airline from")); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No models to find airline from")); return CAirlineIcaoCode(); } @@ -154,7 +155,7 @@ namespace BlackCore if (countPerAirline.size() == 1) { code = countPerAirline.firstKey(); - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Only found 1 airline ICAO '%1' in %2 models").arg(countPerAirline.firstKey().getDesignatorDbKey()).arg(models.size()), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Found only 1 airline ICAO '%1' in %2 models").arg(countPerAirline.firstKey().getDesignatorDbKey()).arg(models.size()), getLogCategories()); break; } @@ -165,7 +166,7 @@ namespace BlackCore modelsWithAirline = CAircraftMatcher::ifPossibleReduceModelsByAirlineNameTelephonyDesignator(callsign, airlineName, airlineTelephony, modelsWithAirline, info.arg(modelsWithAirline.size()).arg(primaryIcao), reduced, log); } code = modelsWithAirline.getAirlineWithMaxCount(); - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Using primary airline ICAO '%1' found '%2'").arg(primaryIcao, code.getDesignatorDbKey()), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using primary airline ICAO '%1' found '%2'").arg(primaryIcao, code.getDesignatorDbKey()), getLogCategories()); break; } } @@ -177,7 +178,7 @@ namespace BlackCore if (countPerAirline.size() == 1) { code = countPerAirline.firstKey(); - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Only found 1 airline ICAO '%1' in %2 models").arg(countPerAirline.firstKey().getDesignatorDbKey()).arg(models.size()), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Found only 1 airline ICAO '%1' in %2 models").arg(countPerAirline.firstKey().getDesignatorDbKey()).arg(models.size()), getLogCategories()); break; } @@ -188,7 +189,7 @@ namespace BlackCore modelsWithAirline = CAircraftMatcher::ifPossibleReduceModelsByAirlineNameTelephonyDesignator(callsign, airlineName, airlineTelephony, modelsWithAirline, info.arg(modelsWithAirline.size()).arg(secondaryIcao), reduced, log); } code = modelsWithAirline.getAirlineWithMaxCount(); - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Using secondary airline ICAO '%1' found '%2'").arg(primaryIcao, code.getDesignatorDbKey()), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using secondary airline ICAO '%1' found '%2'").arg(primaryIcao, code.getDesignatorDbKey()), getLogCategories()); break; } } @@ -199,7 +200,7 @@ namespace BlackCore const QString airlinePrefix = callsign.getAirlinePrefix(flightNumber); if (airlinePrefix.isEmpty() || flightNumber.isEmpty()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Callsign '%1' cannot be split in airline '%1'/ flight number '%2'").arg(callsign.toQString(), flightNumber), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Callsign '%1' cannot be split in airline '%1'/ flight number '%2'").arg(callsign.toQString(), flightNumber), getLogCategories()); break; } @@ -208,7 +209,7 @@ namespace BlackCore if (countPerAirline.size() == 1) { code = countPerAirline.firstKey(); - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Only found 1 airline ICAO '%1' in %2 models").arg(countPerAirline.firstKey().getDesignatorDbKey()).arg(models.size()), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Found only 1 airline ICAO '%1' in %2 models").arg(countPerAirline.firstKey().getDesignatorDbKey()).arg(models.size()), getLogCategories()); break; } if (modelsWithAirline.size() > 0) @@ -218,7 +219,7 @@ namespace BlackCore modelsWithAirline = CAircraftMatcher::ifPossibleReduceModelsByAirlineNameTelephonyDesignator(callsign, airlineName, airlineTelephony, modelsWithAirline, info.arg(modelsWithAirline.size()).arg(airlinePrefix), reduced, log); } code = modelsWithAirline.getAirlineWithMaxCount(); - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Using callsign airline ICAO '%1' found '%2'").arg(airlinePrefix, code.getDesignatorDbKey()), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using callsign airline ICAO '%1' found '%2'").arg(airlinePrefix, code.getDesignatorDbKey()), getLogCategories()); break; } } @@ -228,13 +229,13 @@ namespace BlackCore // return message if (code.hasValidDesignator()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Resolved to airline designator: %1").arg(code.toQString(true))); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Resolved to airline designator: %1").arg(code.toQString(true))); } else { - CMatchingUtils::addLogDetailsToList(log, callsign, - QStringLiteral("Cannot find airline designator from 1st: '%1' 2nd: '%2' callsign: '%3', use airline callsign: %4, airline name: '%5' telephony: '%6', models: %7"). - arg(primaryIcao, secondaryIcao, callsign.toQString(), boolToYesNo(airlineFromCallsign), airlineName, airlineTelephony, models.sizeString()), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, + QStringLiteral("Cannot find airline designator from 1st: '%1' 2nd: '%2' callsign: '%3', use airline callsign: %4, airline name: '%5' telephony: '%6', models: %7"). + arg(primaryIcao, secondaryIcao, callsign.toQString(), boolToYesNo(airlineFromCallsign), airlineName, airlineTelephony, models.sizeString()), getLogCategories()); } return code; } @@ -243,10 +244,11 @@ namespace BlackCore { if (!models.isEmpty()) { + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using %1 models to resolve airline designator").arg(models.size())); const CAirlineIcaoCode airline = CAircraftMatcher::failoverValidAirlineIcaoDesignator(callsign, primaryIcao, secondaryIcao, airlineFromCallsign, airlineName, airlineTelephony, models, log); if (airline.hasValidDbKey()) { return airline; } } - + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Now using resolution of airline ICAO without specific models")); return CAircraftMatcher::failoverValidAirlineIcaoDesignator(callsign, primaryIcao, secondaryIcao, airlineFromCallsign, airlineName, airlineTelephony, true, log); } @@ -491,7 +493,7 @@ namespace BlackCore QString logMessage; const CCallsign callsign = inModel.getCallsign(); - if (js.isEmpty() && log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Matching script is empty")); } + if (js.isEmpty() && log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script is empty")); } while (!js.isEmpty() && sApp && !sApp->isShuttingDown()) { rv.runScript = true; @@ -504,8 +506,8 @@ namespace BlackCore if (log) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Matching script (%1): '%2'").arg(msToString(ms), lf)); - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Matching script input model (%1): '%2'").arg(inModel.toQString(true))); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script (%1): '%2'").arg(msToString(ms), lf)); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script input model (%1): '%2'").arg(inModel.toQString(true))); } QJSEngine engine; @@ -554,7 +556,7 @@ namespace BlackCore { const QString msg = QStringLiteral("Matching script error: %1 '%2'").arg(ms.property("lineNumber").toInt()).arg(ms.toString()); CLogMessage(getLogCategories()).warning(msg); - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, msg); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, msg); } } else { @@ -625,7 +627,7 @@ namespace BlackCore const CLivery livery(sApp->getWebDataServices()->getStdLiveryForAirlineCode(icao)); rv.model.setLivery(livery); - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Matching script, changed airline ICAO: '%1' -> '%2'").arg(matchedModel.getAirlineIcaoCode().toQString(true), icao.toQString(true))); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script, changed airline ICAO: '%1' -> '%2'").arg(matchedModel.getAirlineIcaoCode().toQString(true), icao.toQString(true))); } rv.modified = true; } } @@ -640,7 +642,7 @@ namespace BlackCore } // log message - if (log && !logMessage.isEmpty()) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Matching script log: '%1'").arg(logMessage)); } + if (log && !logMessage.isEmpty()) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script log: '%1'").arg(logMessage)); } // end return rv; @@ -670,7 +672,7 @@ namespace BlackCore { if (!setup.isReverseLookupModelString()) { - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Model string looup disabled")); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Model string looup disabled")); } } else { @@ -686,15 +688,15 @@ namespace BlackCore // lookup if model is not yet from DB const DBTripleIds ids = CAircraftModel::parseNetworkLiveryString(networkLiveryInfo); - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Livery string with ids: '%1'").arg(ids.toQString())); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Livery string with ids: '%1'").arg(ids.toQString())); } if (!setup.isReverseLookupSwiftLiveryIds()) { - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Ignoring livery ids '%1', because of setup").arg(ids.toQString())); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Ignoring livery ids '%1', because of setup").arg(ids.toQString())); } } else if (ids.model >= 0 && !modelToLookup.hasModelString()) { - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Model lookup with id %1 from triple ids '%2'").arg(ids.model).arg(ids.toQString())); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Model lookup with id %1 from triple ids '%2'").arg(ids.model).arg(ids.toQString())); } const CAircraftModel modelFromDb = CAircraftMatcher::reverseLookupModelId(ids.model, callsign, log); if (modelFromDb.hasValidDbKey()) { @@ -706,7 +708,7 @@ namespace BlackCore // no direct resolution of model, try livery and aircraft ICAO if (!modelToLookup.getAircraftIcaoCode().hasValidDbKey() && ids.aircraft >= 0) { - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Aircraft ICAO lookup with id %1 from triple ids '%2'").arg(ids.aircraft).arg(ids.toQString())); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Aircraft ICAO lookup with id %1 from triple ids '%2'").arg(ids.aircraft).arg(ids.toQString())); } const CAircraftIcaoCode icaoFromDb = CAircraftMatcher::reverseLookupAircraftIcaoId(ids.aircraft, callsign, log); if (icaoFromDb.hasValidDbKey()) { @@ -716,7 +718,7 @@ namespace BlackCore if (!modelToLookup.getLivery().hasValidDbKey() && ids.livery >= 0) { - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Livery lookup with id %1 from triple ids '%2'").arg(ids.livery).arg(ids.toQString())); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Livery lookup with id %1 from triple ids '%2'").arg(ids.livery).arg(ids.toQString())); } const CLivery liveryFromDb = CAircraftMatcher::reverseLookupLiveryId(ids.livery, callsign, log); if (liveryFromDb.hasValidDbKey()) { @@ -733,13 +735,13 @@ namespace BlackCore reverseIcaoCode = CAircraftMatcher::reverseLookupAircraftIcao(reverseIcaoCode, callsign, log); if (reverseIcaoCode.isLoadedFromDb()) { - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Set aircraft ICAO to '%1' from DB").arg(reverseIcaoCode.getCombinedIcaoStringWithKey())); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Set aircraft ICAO to '%1' from DB").arg(reverseIcaoCode.getCombinedIcaoStringWithKey())); } model.setAircraftIcaoCode(reverseIcaoCode); } else { // no DB data - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup, ICAO '%1' not resolved from DB").arg(reverseIcaoCode.getDesignator())); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup, ICAO '%1' not resolved from DB").arg(reverseIcaoCode.getDesignator())); } } } } @@ -769,12 +771,12 @@ namespace BlackCore { // we have found a livery in the DB model.setLivery(reverseLivery); - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of livery found '%1'").arg(reverseLivery.getCombinedCodePlusInfoAndId()), getLogCategories()); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of livery found '%1'").arg(reverseLivery.getCombinedCodePlusInfoAndId()), getLogCategories()); } } else { // no livery data found - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of livery '%1' yielded no result").arg(reverseLivery.getCombinedCodePlusInfo()), getLogCategories()); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of livery '%1' yielded no result").arg(reverseLivery.getCombinedCodePlusInfo()), getLogCategories()); } } } // livery lookup @@ -789,7 +791,7 @@ namespace BlackCore if (stdLivery.hasValidDbKey()) { model.setLivery(stdLivery); - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Set standardlivery `%1`").arg(stdLivery.getCombinedCodePlusInfo())); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Set standardlivery `%1`").arg(stdLivery.getCombinedCodePlusInfo())); } } } @@ -798,7 +800,7 @@ namespace BlackCore // create a pseudo livery, try to find airline first const CLivery liveryDummy(CLivery::getStandardCode(airlineIcaoCode), airlineIcaoCode, "Generated"); model.setLivery(liveryDummy); - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Generated livery, set livery `%1`").arg(liveryDummy.getCombinedCodePlusInfo())); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Generated livery, set livery `%1`").arg(liveryDummy.getCombinedCodePlusInfo())); } } } } // pseudo livery @@ -811,10 +813,10 @@ namespace BlackCore if (log) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Using model: ICAO '%1', livery '%2', model '%3', type '%4'").arg( - model.getAircraftIcaoCode().getCombinedIcaoStringWithKey(), - model.getLivery().getCombinedCodePlusInfo(), - model.getModelString(), model.getModelTypeAsString())); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using model: ICAO '%1', livery '%2', model '%3', type '%4'").arg( + model.getAircraftIcaoCode().getCombinedIcaoStringWithKey(), + model.getLivery().getCombinedCodePlusInfo(), + model.getModelString(), model.getModelTypeAsString())); } return model; } @@ -827,7 +829,7 @@ namespace BlackCore const MatchingScriptReturnValues rv = CAircraftMatcher::reverseLookupScript(reverseModel, setup, log); if (rv.runScriptModifiedAndRerun()) { - CMatchingUtils::addLogDetailsToList(log, cs, QStringLiteral("Matching script: Modified value and requested rerun")); + CLogUtilities::addLogDetailsToList(log, cs, QStringLiteral("Matching script: Modified value and requested rerun")); CAircraftMatcherSetup setupRerun(setup); setupRerun.resetReverseLookup(); reverseModel = CAircraftMatcher::reverseLookupModel(rv.model, networkLiveryInfo, setupRerun, log); @@ -841,7 +843,7 @@ namespace BlackCore if (!sApp || sApp->isShuttingDown() || !sApp->hasWebDataServices()) { return CAircraftModel(); } if (!doLookupString) { - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Ignore model string in reverse lookup (disabled), ignoring '%1'").arg(modelString)); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Ignore model string in reverse lookup (disabled), ignoring '%1'").arg(modelString)); } return CAircraftModel(); } CAircraftModel model = sApp->getWebDataServices()->getModelForModelString(modelString); @@ -850,11 +852,11 @@ namespace BlackCore { if (isDBModel) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Found model in DB for model string '%1' dist: '%2' descr.: '%3'").arg(model.getModelStringAndDbKey(), model.getDistributor().getDbKey(), model.getDescription())); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Found model in DB for model string '%1' dist: '%2' descr.: '%3'").arg(model.getModelStringAndDbKey(), model.getDistributor().getDbKey(), model.getDescription())); } else { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Did not find model in DB for model string '%1'").arg(modelString)); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Did not find model in DB for model string '%1'").arg(modelString)); } } @@ -874,11 +876,11 @@ namespace BlackCore { if (model.hasValidDbKey()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Found model in DB for id '%1'").arg(id)); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Found model in DB for id '%1'").arg(id)); } else { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Did not find model in DB for id '%1'").arg(id)); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Did not find model in DB for id '%1'").arg(id)); } } model.setCallsign(callsign); @@ -900,16 +902,16 @@ namespace BlackCore // sometimes from network we receive something like "CESSNA C172" if (CAircraftIcaoCode::isValidDesignator(designator)) { - CMatchingUtils::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1' did not find anything, using smart search").arg(designator), CAircraftMatcher::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1' did not find anything, using smart search").arg(designator), CAircraftMatcher::getLogCategories()); icao = sApp->getWebDataServices()->smartAircraftIcaoSelector(icaoCandidate); } else { - CMatchingUtils::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of invalid ICAO code '%1' did not find anything so far").arg(designator), CAircraftMatcher::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of invalid ICAO code '%1' did not find anything so far").arg(designator), CAircraftMatcher::getLogCategories()); const QStringList parts(designator.split(' ')); for (const QString &p : parts) { - CMatchingUtils::addLogDetailsToList(log, logCallsign, QStringLiteral("Trying parts, now reverse lookup of aircraft ICAO '%1' using smart search").arg(p), CAircraftMatcher::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Trying parts, now reverse lookup of aircraft ICAO '%1' using smart search").arg(p), CAircraftMatcher::getLogCategories()); icao = sApp->getWebDataServices()->smartAircraftIcaoSelector(p); if (icao.isLoadedFromDb()) break; } @@ -921,20 +923,20 @@ namespace BlackCore } else { - CMatchingUtils::addLogDetailsToList(log, logCallsign, QStringLiteral("No DB data for ICAO '%1', valid ICAO?").arg(designator), CAircraftMatcher::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("No DB data for ICAO '%1', valid ICAO?").arg(designator), CAircraftMatcher::getLogCategories()); return CAircraftIcaoCode(icaoCandidate); } } if (foundIcaos.size() < 1) { - CMatchingUtils::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', nothing found").arg(designator), CAircraftMatcher::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', nothing found").arg(designator), CAircraftMatcher::getLogCategories()); return CAircraftIcaoCode(icaoCandidate); } else if (foundIcaos.size() == 1) { const CAircraftIcaoCode icao(foundIcaos.front()); - CMatchingUtils::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', found one manufacturer '%2' in DB").arg(designator, icao.getDesignatorManufacturer()), CAircraftMatcher::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', found one manufacturer '%2' in DB").arg(designator, icao.getDesignatorManufacturer()), CAircraftMatcher::getLogCategories()); return icao; } else @@ -942,15 +944,15 @@ namespace BlackCore // multiple ICAOs Q_ASSERT_X(foundIcaos.size() > 1, Q_FUNC_INFO, "Wrong size"); const QPair maxManufacturer = foundIcaos.maxCountManufacturer(); - CMatchingUtils::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', found %2 values (ambiguous): %3").arg(designator).arg(foundIcaos.size()).arg(foundIcaos.dbKeysAsString(", ")), CAircraftMatcher::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', found %2 values (ambiguous): %3").arg(designator).arg(foundIcaos.size()).arg(foundIcaos.dbKeysAsString(", ")), CAircraftMatcher::getLogCategories()); if (maxManufacturer.second < foundIcaos.size()) { foundIcaos = foundIcaos.findByManufacturer(maxManufacturer.first); - CMatchingUtils::addLogDetailsToList(log, logCallsign, QStringLiteral("Reducing by manufacturer '%1', now %2 values").arg(maxManufacturer.first).arg(foundIcaos.size()), CAircraftMatcher::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reducing by manufacturer '%1', now %2 values").arg(maxManufacturer.first).arg(foundIcaos.size()), CAircraftMatcher::getLogCategories()); } foundIcaos.sortByRank(); const CAircraftIcaoCode icao = foundIcaos.front(); // best rank - CMatchingUtils::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', using ICAO '%2' with rank %3").arg(designator, icao.toQString(), icao.getRankString()), CAircraftMatcher::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', using ICAO '%2' with rank %3").arg(designator, icao.toQString(), icao.getRankString()), CAircraftMatcher::getLogCategories()); return icao; } } @@ -963,11 +965,11 @@ namespace BlackCore { if (icao.hasValidDbKey()) { - CMatchingUtils::addLogDetailsToList(log, logCallsign, QStringLiteral("Found aircraft ICAO in DB for id '%1'").arg(id)); + CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Found aircraft ICAO in DB for id '%1'").arg(id)); } else { - CMatchingUtils::addLogDetailsToList(log, logCallsign, QStringLiteral("Did not find aircraft ICAO in DB for id '%1'").arg(id)); + CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Did not find aircraft ICAO in DB for id '%1'").arg(id)); } } return icao; @@ -979,8 +981,8 @@ namespace BlackCore const CAirlineIcaoCode icao = sApp->getWebDataServices()->smartAirlineIcaoSelector(icaoPattern, callsign); if (log) { - if (icao.hasValidDbKey()) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of airline ICAO '%1' and callsign '%2' found '%3' '%4' in DB").arg(icaoPattern.getDesignator(), callsign.asString(), icao.getVDesignatorDbKey(), icao.getName()), CAircraftMatcher::getLogCategories()); } - else { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of airline ICAO '%1' and callsign '%2', nothing found in DB").arg(icaoPattern.getDesignator(), callsign.asString()), CAircraftMatcher::getLogCategories()); } + if (icao.hasValidDbKey()) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of airline ICAO '%1' and callsign '%2' found '%3' '%4' in DB").arg(icaoPattern.getDesignator(), callsign.asString(), icao.getVDesignatorDbKey(), icao.getName()), CAircraftMatcher::getLogCategories()); } + else { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of airline ICAO '%1' and callsign '%2', nothing found in DB").arg(icaoPattern.getDesignator(), callsign.asString()), CAircraftMatcher::getLogCategories()); } } return icao; } @@ -990,15 +992,15 @@ namespace BlackCore if (!sApp || sApp->isShuttingDown() || !sApp->hasWebDataServices()) { return CLivery(); } if (!airline.hasValidDesignator()) { - if (log) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of standard livery skipped, no airline designator"), CAircraftMatcher::getLogCategories(), CStatusMessage::SeverityWarning); } + if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of standard livery skipped, no airline designator"), CAircraftMatcher::getLogCategories(), CStatusMessage::SeverityWarning); } return CLivery(); } const CLivery livery = sApp->getWebDataServices()->getStdLiveryForAirlineCode(airline); if (log) { - if (livery.hasValidDbKey()) { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of standard livery for '%1' found '%2'").arg(airline.getDesignator(), livery.getCombinedCode()), CAircraftMatcher::getLogCategories()); } - else { CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Not standard livery for airline '%1' in DB").arg(airline.getDesignator()), CAircraftMatcher::getLogCategories()); } + if (livery.hasValidDbKey()) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of standard livery for '%1' found '%2'").arg(airline.getDesignator(), livery.getCombinedCode()), CAircraftMatcher::getLogCategories()); } + else { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Not standard livery for airline '%1' in DB").arg(airline.getDesignator()), CAircraftMatcher::getLogCategories()); } } return livery; } @@ -1011,11 +1013,11 @@ namespace BlackCore { if (livery.hasValidDbKey()) { - CMatchingUtils::addLogDetailsToList(log, logCallsign, QStringLiteral("Found livery in DB for id '%1'").arg(id)); + CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Found livery in DB for id '%1'").arg(id)); } else { - CMatchingUtils::addLogDetailsToList(log, logCallsign, QStringLiteral("Did not find livery in DB for id '%1'").arg(id)); + CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Did not find livery in DB for id '%1'").arg(id)); } } return livery; @@ -1045,11 +1047,11 @@ namespace BlackCore const QStringList names = sApp->getWebDataServices()->getAirlineNames(); if (names.contains(candidate, Qt::CaseInsensitive)) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' found in DB").arg(candidate)); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' found in DB").arg(candidate)); return candidate; } - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' not found in DB").arg(candidate)); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' not found in DB").arg(candidate)); return {}; } @@ -1060,11 +1062,11 @@ namespace BlackCore const QStringList designators = sApp->getWebDataServices()->getTelephonyDesignators(); if (designators.contains(candidate, Qt::CaseInsensitive)) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' found").arg(candidate)); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' found").arg(candidate)); return candidate; } - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' not found").arg(candidate)); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' not found").arg(candidate)); return {}; } @@ -1073,14 +1075,14 @@ namespace BlackCore if (!sApp || sApp->isShuttingDown() || !sApp->hasWebDataServices()) { return false; } if (!CAircraftIcaoCode::isValidDesignator(candidate)) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("No valid ICAO designator '%1'").arg(candidate)); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No valid ICAO designator '%1'").arg(candidate)); return false; } const bool known = sApp->getWebDataServices()->containsAircraftIcaoDesignator(candidate); static const QString sKnown("Known ICAO '%1'"); static const QString sUnknown("Unknown ICAO '%1'"); - CMatchingUtils::addLogDetailsToList(log, callsign, known ? sKnown.arg(candidate) : sUnknown.arg(candidate)); + CLogUtilities::addLogDetailsToList(log, callsign, known ? sKnown.arg(candidate) : sUnknown.arg(candidate)); return known; } @@ -1090,7 +1092,7 @@ namespace BlackCore const bool known = sApp->getWebDataServices()->containsModelString(candidate); static const QString sKnown("Known modelstring '%1'"); static const QString sUnknown("Unknown modelstring '%1'"); - CMatchingUtils::addLogDetailsToList(log, callsign, known ? sKnown.arg(candidate) : sUnknown.arg(candidate)); + CLogUtilities::addLogDetailsToList(log, callsign, known ? sKnown.arg(candidate) : sUnknown.arg(candidate)); return known; } @@ -1099,7 +1101,7 @@ namespace BlackCore if (!sApp || sApp->isShuttingDown() || !sApp->hasWebDataServices()) { return CAircraftIcaoCode(); } if (!airline.isLoadedFromDb()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("No valid airline from DB '%1'").arg(airline.getDesignator())); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No valid airline from DB '%1'").arg(airline.getDesignator())); return CAircraftIcaoCode(); } @@ -1108,18 +1110,18 @@ namespace BlackCore const CAircraftIcaoCodeList aircraft = sApp->getWebDataServices()->getAircraftIcaoCodesForAirline(airline); if (aircraft.isEmpty()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("No aircraft known for airline '%1'").arg(airline.getDesignator())); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No aircraft known for airline '%1'").arg(airline.getDesignator())); return CAircraftIcaoCode(); } const QSet allIcaos = aircraft.allDesignators(); const QString allIcaosStr = allIcaos.toList().join(", "); - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Aircraft '%1' known for airline '%2'").arg(allIcaosStr, airline.getDesignator())); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Aircraft '%1' known for airline '%2'").arg(allIcaosStr, airline.getDesignator())); const CAircraftIcaoCode code = aircraft.findBestFuzzyMatchOrDefault(candidateString); if (code.hasValidDesignator()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Aircraft '%1' is best fuzzy search of '%2' for airline '%3'").arg(code.toQString(), candidateString, airline.getDesignator())); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Aircraft '%1' is best fuzzy search of '%2' for airline '%3'").arg(code.toQString(), candidateString, airline.getDesignator())); return code; } @@ -1133,11 +1135,11 @@ namespace BlackCore if (icao.hasValidDesignator()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Turned callsign %1 into airline %2").arg(callsign.asString(), icao.getDesignator()), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Turned callsign %1 into airline %2").arg(callsign.asString(), icao.getDesignator()), getLogCategories()); } else { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Cannot turn callsign %1 into airline").arg(callsign.asString()), getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Cannot turn callsign %1 into airline").arg(callsign.asString()), getLogCategories()); } return icao; } @@ -1639,25 +1641,25 @@ namespace BlackCore reduced = false; if (inList.isEmpty()) { - if (log) { CMatchingUtils::addLogDetailsToList(log, logCallsign, info % u" Empty input list, cannot reduce", getLogCategories()); } + if (log) { CLogUtilities::addLogDetailsToList(log, logCallsign, info % u" Empty input list, cannot reduce", getLogCategories()); } return inList; } const QString m = icaoCode.getManufacturer(); if (m.isEmpty()) { - if (log) { CMatchingUtils::addLogDetailsToList(log, logCallsign, info % u" No manufacturer, cannot reduce " % QString::number(inList.size()) % u" entries", getLogCategories()); } + if (log) { CLogUtilities::addLogDetailsToList(log, logCallsign, info % u" No manufacturer, cannot reduce " % QString::number(inList.size()) % u" entries", getLogCategories()); } return inList; } const CAircraftIcaoCodeList outList(inList.findByManufacturer(m)); if (outList.isEmpty()) { - if (log) { CMatchingUtils::addLogDetailsToList(log, logCallsign, info % " Not found " % m % ", cannot reduce", getLogCategories()); } + if (log) { CLogUtilities::addLogDetailsToList(log, logCallsign, info % " Not found " % m % ", cannot reduce", getLogCategories()); } return inList; } - if (log) { CMatchingUtils::addLogDetailsToList(log, logCallsign, info % u" Reduced by " % m % u" results: " % QString::number(outList.size()), getLogCategories()); } + if (log) { CLogUtilities::addLogDetailsToList(log, logCallsign, info % u" Reduced by " % m % u" results: " % QString::number(outList.size()), getLogCategories()); } reduced = true; return outList; } @@ -1750,39 +1752,39 @@ namespace BlackCore reduced = false; if (inList.isEmpty()) { - if (log) { CMatchingUtils::addLogDetailsToList(log, cs, info % u" Empty input list, cannot reduce", getLogCategories()); } + if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % u" Empty input list, cannot reduce", getLogCategories()); } return inList; } if (telephony.isEmpty() && airlineName.isEmpty()) { - if (log) { CMatchingUtils::addLogDetailsToList(log, cs, info % u" No name/telephony, cannot reduce " % QString::number(inList.size()) % u" entries", getLogCategories()); } + if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % u" No name/telephony, cannot reduce " % QString::number(inList.size()) % u" entries", getLogCategories()); } return inList; } CAircraftModelList step1Data = inList.findByAirlineNamesOrTelephonyDesignator(airlineName); if (step1Data.size() < 1 || step1Data.size() == inList.size()) { - if (log) { CMatchingUtils::addLogDetailsToList(log, cs, info % QStringLiteral(" cannot reduce by '%1'").arg(airlineName), getLogCategories()); } + if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % QStringLiteral(" cannot reduce by '%1'").arg(airlineName), getLogCategories()); } step1Data = inList; } else { reduced = true; - if (log) { CMatchingUtils::addLogDetailsToList(log, cs, info % QStringLiteral(" reduced by '%1'").arg(airlineName), getLogCategories()); } + if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % QStringLiteral(" reduced by '%1'").arg(airlineName), getLogCategories()); } } if (step1Data.size() == 1) { return step1Data; } CAircraftModelList step2Data = inList.findByAirlineNamesOrTelephonyDesignator(telephony); if (step2Data.size() < 1 || step2Data.size() == inList.size()) { - if (log) { CMatchingUtils::addLogDetailsToList(log, cs, info % QStringLiteral(" cannot reduce by '%1'").arg(telephony), getLogCategories()); } + if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % QStringLiteral(" cannot reduce by '%1'").arg(telephony), getLogCategories()); } step2Data = step1Data; } else { reduced = true; - if (log) { CMatchingUtils::addLogDetailsToList(log, cs, info % QStringLiteral(" reduced by '%1'").arg(telephony), getLogCategories()); } + if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % QStringLiteral(" reduced by '%1'").arg(telephony), getLogCategories()); } } return step2Data; @@ -1790,7 +1792,7 @@ namespace BlackCore const CAircraftModelList reducedModels = inList.findByAirlineNameAndTelephonyDesignator(airlineName, telephony); if (reducedModels.size() < 1 || reducedModels.size() == inList.size()) { - if (log) { CMatchingUtils::addLogDetailsToList(log, cs, info % QStringLiteral(" cannot reduce by '%1'/'%2'").arg(airlineName, telephony), getLogCategories()); } + if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % QStringLiteral(" cannot reduce by '%1'/'%2'").arg(airlineName, telephony), getLogCategories()); } return inList; } diff --git a/src/blackcore/airspacemonitor.cpp b/src/blackcore/airspacemonitor.cpp index 0a8272f58..c26e6d735 100644 --- a/src/blackcore/airspacemonitor.cpp +++ b/src/blackcore/airspacemonitor.cpp @@ -15,12 +15,12 @@ #include "blackcore/application.h" #include "blackcore/webdataservices.h" #include "blackcore/context/contextnetwork.h" -#include "blackmisc/simulation/matchingutils.h" #include "blackmisc/aviation/aircraftparts.h" #include "blackmisc/aviation/aircraftsituation.h" #include "blackmisc/aviation/comsystem.h" #include "blackmisc/aviation/modulator.h" #include "blackmisc/aviation/transponder.h" +#include "blackmisc/aviation/logutils.h" #include "blackmisc/audio/voiceroom.h" #include "blackmisc/geo/elevationplane.h" #include "blackmisc/network/user.h" @@ -578,7 +578,7 @@ namespace BlackCore if (!myself || !sApp || sApp->isShuttingDown()) { return; } if (!this->isAircraftInRange(callsign)) { - const CStatusMessage m = CMatchingUtils::logMessage(callsign, "No longer in range", CAirspaceMonitor::getLogCategories()); + const CStatusMessage m = CLogUtilities::logMessage(callsign, "No longer in range", CAirspaceMonitor::getLogCategories()); this->addReverseLookupMessage(callsign, m); return; } @@ -605,14 +605,14 @@ namespace BlackCore readiness.setFlag(ReadyForMatchingSent); // stored as readiness is reference const QString readyMsg = readyForMatching.arg(callsign.toQString(), remoteAircraft.getModel().getModelTypeAsString(), readiness.toQString()); - const CStatusMessage m = CMatchingUtils::logMessage(callsign, readyMsg, getLogCategories()); + const CStatusMessage m = CLogUtilities::logMessage(callsign, readyMsg, getLogCategories()); this->addReverseLookupMessage(callsign, m); emit this->readyForModelMatching(remoteAircraft); } else { - const CStatusMessage m = CMatchingUtils::logMessage(callsign, "Ignoring this aircraft, not found in range list, disconnected, or no callsign", CAirspaceMonitor::getLogCategories(), CStatusMessage::SeverityWarning); + const CStatusMessage m = CLogUtilities::logMessage(callsign, "Ignoring this aircraft, not found in range list, disconnected, or no callsign", CAirspaceMonitor::getLogCategories(), CStatusMessage::SeverityWarning); this->addReverseLookupMessage(callsign, m); m_readiness.remove(callsign); } @@ -776,9 +776,9 @@ namespace BlackCore CStatusMessageList reverseLookupMessages; CStatusMessageList *pReverseLookupMessages = reverseLookupEnabled.testFlag(RevLogEnabled) ? &reverseLookupMessages : nullptr; - CMatchingUtils::addLogDetailsToList(pReverseLookupMessages, callsign, - QStringLiteral("FsInn data from network: aircraft '%1', airline '%2', model '%3', combined '%4'"). - arg(aircraftIcaoDesignator, airlineIcaoDesignator, modelString, combinedAircraftType)); + CLogUtilities::addLogDetailsToList(pReverseLookupMessages, callsign, + QStringLiteral("FsInn data from network: aircraft '%1', airline '%2', model '%3', combined '%4'"). + arg(aircraftIcaoDesignator, airlineIcaoDesignator, modelString, combinedAircraftType)); QString usedModelString = modelString; @@ -786,16 +786,16 @@ namespace BlackCore if (!modelString.isEmpty() && !setup.isReverseLookupModelString()) { usedModelString.clear(); - CMatchingUtils::addLogDetailsToList(pReverseLookupMessages, callsign, - QStringLiteral("FsInn modelstring '%1' ignored because of setuo").arg(modelString)); + CLogUtilities::addLogDetailsToList(pReverseLookupMessages, callsign, + QStringLiteral("FsInn modelstring '%1' ignored because of setuo").arg(modelString)); } else if (!CAircraftMatcher::isKnownModelString(modelString, callsign, pReverseLookupMessages)) { // from the T701 test, do NOT use if model string is unknown // this can overrride "swift livery strings", FsInn here only is useful with a known model string usedModelString.clear(); - CMatchingUtils::addLogDetailsToList(pReverseLookupMessages, callsign, - QStringLiteral("FsInn modelstring ignored, as modelstring '%1' is not known").arg(modelString)); + CLogUtilities::addLogDetailsToList(pReverseLookupMessages, callsign, + QStringLiteral("FsInn modelstring ignored, as modelstring '%1' is not known").arg(modelString)); } this->addOrUpdateAircraftInRange(callsign, aircraftIcaoDesignator, airlineIcaoDesignator, QString(), usedModelString, CAircraftModel::TypeFSInnData, pReverseLookupMessages); @@ -814,10 +814,10 @@ namespace BlackCore const ReverseLookupLogging reverseLookupEnabled = this->isReverseLookupMessagesEnabled(); CStatusMessageList reverseLookupMessages; CStatusMessageList *pReverseLookupMessages = reverseLookupEnabled.testFlag(RevLogEnabled) ? &reverseLookupMessages : nullptr; - CMatchingUtils::addLogDetailsToList(pReverseLookupMessages, callsign, - QStringLiteral("Data from network: aircraft '%1', airline '%2', livery '%3'"). - arg(aircraftIcaoDesignator, airlineIcaoDesignator, livery), - CAirspaceMonitor::getLogCategories()); + CLogUtilities::addLogDetailsToList(pReverseLookupMessages, callsign, + QStringLiteral("Data from network: aircraft '%1', airline '%2', livery '%3'"). + arg(aircraftIcaoDesignator, airlineIcaoDesignator, livery), + CAirspaceMonitor::getLogCategories()); const CClient client = this->getClientOrDefaultForCallsign(callsign); this->addOrUpdateAircraftInRange(callsign, aircraftIcaoDesignator, airlineIcaoDesignator, livery, client.getQueriedModelString(), CAircraftModel::TypeQueriedFromNetwork, pReverseLookupMessages); @@ -833,7 +833,7 @@ namespace BlackCore CAircraftModel::ModelType type, CStatusMessageList *log, bool runMatchinScript) { const int modelSetCount = this->getModelSetCount(); - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup (with FP data) model set count: %1").arg(modelSetCount), CAirspaceMonitor::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup (with FP data), model set count: %1").arg(modelSetCount), CAirspaceMonitor::getLogCategories()); const DBTripleIds ids = CAircraftModel::parseNetworkLiveryString(liveryString); const bool hasAnyId = ids.hasAnyId(); @@ -856,7 +856,7 @@ namespace BlackCore if (!setup.isReverseLookupSwiftLiveryIds()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of livery string '%1' disabled").arg(liveryString)); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of livery string '%1' disabled").arg(liveryString)); } else if (hasAnyId) { @@ -871,7 +871,7 @@ namespace BlackCore if (aircraftIcao.hasValidDbKey() && livery.hasValidDbKey()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Using DB livery %1 and aircraft ICAO %2 to create model").arg(livery.getDbKeyAsString(), aircraftIcao.getDbKeyAsString()), CAirspaceMonitor::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using DB livery %1 and aircraft ICAO %2 to create model").arg(livery.getDbKeyAsString(), aircraftIcao.getDbKeyAsString()), CAirspaceMonitor::getLogCategories()); // we have a valid livery from DB + valid aircraft ICAO from DB lookupModel = CAircraftModel(modelString, type, "By DB livery and aircraft ICAO", aircraftIcao, livery); @@ -887,6 +887,7 @@ namespace BlackCore if (airlineIcao.isLoadedFromDb() && !knownAircraftIcao) { // we have no valid aircraft ICAO, so we do a fuzzy search among those + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Fuzzy search among airline aircraft because '%1' is not known ICAO designator").arg(aircraftIcaoString)); const CAircraftIcaoCode foundIcao = CAircraftMatcher::searchAmongAirlineAircraft(aircraftIcaoString, airlineIcao, callsign, log); if (foundIcao.isLoadedFromDb()) { aircraftIcao = foundIcao; } } @@ -898,12 +899,12 @@ namespace BlackCore const CFlightPlanRemarks fpRemarks = this->tryToGetFlightPlanRemarks(callsign); if (fpRemarks.isEmpty()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("No flight plan remarks")); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No flight plan remarks")); } else { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("FP remarks: '%1'").arg(fpRemarks.getRemarks())); - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("FP rem.parsed: '%1'").arg(fpRemarks.toQString(true))); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("FP remarks: '%1'").arg(fpRemarks.getRemarks())); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("FP rem.parsed: '%1'").arg(fpRemarks.toQString(true))); } @@ -941,8 +942,8 @@ namespace BlackCore } } - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Used aircraft ICAO: '%1'").arg(aircraftIcao.toQString(true)), CAirspaceMonitor::getLogCategories()); - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Used airline ICAO: '%1'").arg(airlineIcao.toQString(true)), CAirspaceMonitor::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Used aircraft ICAO: '%1'").arg(aircraftIcao.toQString(true)), CAirspaceMonitor::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Used airline ICAO: '%1'").arg(airlineIcao.toQString(true)), CAirspaceMonitor::getLogCategories()); // matching script is used below lookupModel = CAircraftMatcher::reverseLookupModel(callsign, aircraftIcao, airlineIcao, liveryString, modelString, setup, type, log); @@ -960,7 +961,7 @@ namespace BlackCore { if (rv.runScriptAndRerun()) { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Matching script: Re-run reverseLookupModelWithFlightplanData"), CAirspaceMonitor::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script: Re-run reverseLookupModelWithFlightplanData"), CAirspaceMonitor::getLogCategories()); return CAirspaceMonitor::reverseLookupModelWithFlightplanData(callsign, rv.model.getAircraftIcaoCodeDesignator(), rv.model.getAirlineIcaoCodeVDesignator(), rv.model.getLivery().getCombinedCode(), modelString, type, log, false); @@ -968,13 +969,13 @@ namespace BlackCore else { lookupModel = rv.model; - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("Matching script: Using model from matching script"), CAirspaceMonitor::getLogCategories()); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script: Using model from matching script"), CAirspaceMonitor::getLogCategories()); } } } else { - CMatchingUtils::addLogDetailsToList(log, callsign, QStringLiteral("No reverse lookup script used")); + CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No reverse lookup script used")); } // done diff --git a/src/blackcore/context/contextsimulatorimpl.cpp b/src/blackcore/context/contextsimulatorimpl.cpp index 6cd4880e4..6f15a1efa 100644 --- a/src/blackcore/context/contextsimulatorimpl.cpp +++ b/src/blackcore/context/contextsimulatorimpl.cpp @@ -6,6 +6,7 @@ * or distributed except according to the terms contained in the LICENSE file. */ +#include "contextsimulatorimpl.h" #include "blackcore/context/contextapplication.h" #include "blackcore/context/contextnetwork.h" #include "blackcore/context/contextnetworkimpl.h" @@ -17,23 +18,23 @@ #include "blackcore/application.h" #include "blackcore/pluginmanagersimulator.h" #include "blackcore/simulator.h" +#include "blackmisc/simulation/simulatedaircraft.h" #include "blackmisc/simulation/xplane/xplaneutil.h" #include "blackmisc/simulation/fscommon/fscommonutil.h" #include "blackmisc/simulation/matchingutils.h" +#include "blackmisc/aviation/logutils.h" #include "blackmisc/aviation/callsign.h" +#include "blackmisc/pq/units.h" #include "blackmisc/compare.h" #include "blackmisc/dbusserver.h" #include "blackmisc/simplecommandparser.h" #include "blackmisc/logcategory.h" #include "blackmisc/loghandler.h" #include "blackmisc/logmessage.h" -#include "blackmisc/pq/units.h" -#include "blackmisc/simulation/simulatedaircraft.h" #include "blackmisc/statusmessage.h" #include "blackmisc/threadutils.h" #include "blackmisc/verify.h" #include "blackconfig/buildconfig.h" -#include "contextsimulatorimpl.h" #include #include @@ -656,12 +657,12 @@ namespace BlackCore CSimulatedAircraft brokenAircraft(aircraftAfterModelApplied); brokenAircraft.setEnabled(false); brokenAircraft.setRendered(false); - CMatchingUtils::addLogDetailsToList(pMatchingMessages, callsign, QStringLiteral("Cannot add remote aircraft, no model string: '%1'").arg(brokenAircraft.toQString())); + CLogUtilities::addLogDetailsToList(pMatchingMessages, callsign, QStringLiteral("Cannot add remote aircraft, no model string: '%1'").arg(brokenAircraft.toQString())); emit this->aircraftRenderingChanged(brokenAircraft); return; } m_simulatorPlugin.second->logicallyAddRemoteAircraft(aircraftAfterModelApplied); - CMatchingUtils::addLogDetailsToList(pMatchingMessages, callsign, QStringLiteral("Logically added remote aircraft: %1").arg(aircraftAfterModelApplied.toQString())); + CLogUtilities::addLogDetailsToList(pMatchingMessages, callsign, QStringLiteral("Logically added remote aircraft: %1").arg(aircraftAfterModelApplied.toQString())); this->clearMatchingMessages(callsign); this->addMatchingMessages(callsign, matchingMessages); diff --git a/src/blackgui/components/modelmatchercomponent.cpp b/src/blackgui/components/modelmatchercomponent.cpp index 7e8492934..f4501d111 100644 --- a/src/blackgui/components/modelmatchercomponent.cpp +++ b/src/blackgui/components/modelmatchercomponent.cpp @@ -22,6 +22,7 @@ #include "blackcore/webdataservices.h" #include "blackmisc/simulation/data/modelcaches.h" #include "blackmisc/simulation/matchingutils.h" +#include "blackmisc/aviation/logutils.h" #include "blackmisc/aviation/aircrafticaocode.h" #include "blackmisc/aviation/airlineicaocode.h" #include "blackmisc/aviation/callsign.h" @@ -286,12 +287,12 @@ namespace BlackGui } else { - CMatchingUtils::addLogDetailsToList(&msgs, inModel.getCallsign(), QStringLiteral("Matching script, no modification")); + CLogUtilities::addLogDetailsToList(&msgs, inModel.getCallsign(), QStringLiteral("Matching script, no modification")); } } else { - CMatchingUtils::addLogDetailsToList(&msgs, inModel.getCallsign(), QStringLiteral("No reverse lookup script used")); + CLogUtilities::addLogDetailsToList(&msgs, inModel.getCallsign(), QStringLiteral("No reverse lookup script used")); } return inModel; diff --git a/src/blackmisc/aviation/aircrafticaocode.cpp b/src/blackmisc/aviation/aircrafticaocode.cpp index adee7570a..4b7f57d04 100644 --- a/src/blackmisc/aviation/aircrafticaocode.cpp +++ b/src/blackmisc/aviation/aircrafticaocode.cpp @@ -6,7 +6,7 @@ * or distributed except according to the terms contained in the LICENSE file. */ -#include "blackmisc/simulation/matchingutils.h" +#include "blackmisc/aviation/logutils.h" #include "blackmisc/aviation/aircraftsituationchange.h" #include "blackmisc/aviation/aircrafticaocode.h" #include "blackmisc/db/datastoreutility.h" @@ -131,7 +131,7 @@ namespace BlackMisc { if (this->isDbEqual(otherCode)) { - CMatchingUtils::addLogDetailsToList(log, *this, QString("Equal DB code: 100")); + CLogUtilities::addLogDetailsToList(log, *this, QString("Equal DB code: 100")); return 100; } @@ -142,7 +142,7 @@ namespace BlackMisc score += 50; // same designator if (log) { - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Same designator: %1").arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same designator: %1").arg(score)); } int scoreOld = score; @@ -151,7 +151,7 @@ namespace BlackMisc else if (this->getRank() < 10) { score += (10 - this->getRank()); } if (score > scoreOld) { - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Added rank: %1").arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Added rank: %1").arg(score)); } } else @@ -159,12 +159,12 @@ namespace BlackMisc if (this->hasFamily() && this->getFamily() == otherCode.getFamily()) { score += 40; - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Added family: %1").arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Added family: %1").arg(score)); } else if (this->hasValidCombinedType() && otherCode.getCombinedType() == this->getCombinedType()) { score += 30; - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Added combined code: %1").arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Added combined code: %1").arg(score)); } else if (this->hasValidCombinedType()) { @@ -207,7 +207,7 @@ namespace BlackMisc { score += 4; } - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Added combined code parts: %1").arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Added combined code parts: %1").arg(score)); } } @@ -217,11 +217,11 @@ namespace BlackMisc if (this->matchesManufacturer(otherCode.getManufacturer())) { score += 10; - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Matches manufacturer '%1': %2").arg(this->getManufacturer()).arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Matches manufacturer '%1': %2").arg(this->getManufacturer()).arg(score)); } else if (this->getManufacturer().contains(otherCode.getManufacturer(), Qt::CaseInsensitive)) { - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Contains manufacturer '%1': %2").arg(this->getManufacturer()).arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Contains manufacturer '%1': %2").arg(this->getManufacturer()).arg(score)); score += 5; } } @@ -230,12 +230,12 @@ namespace BlackMisc if (this->hasCategory() && otherCode.hasCategory() && this->getCategory() == otherCode.getCategory()) { score += 8; - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Matches military flag '%1': %2").arg(boolToYesNo(this->isMilitary())).arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Matches military flag '%1': %2").arg(boolToYesNo(this->isMilitary())).arg(score)); } else if (this->isMilitary() == otherCode.isMilitary()) { score += 8; - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Matches military flag '%1': %2").arg(boolToYesNo(this->isMilitary())).arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Matches military flag '%1': %2").arg(boolToYesNo(this->isMilitary())).arg(score)); } // 0..85 return score; diff --git a/src/blackmisc/aviation/airlineicaocode.cpp b/src/blackmisc/aviation/airlineicaocode.cpp index 341988335..d1804d5ed 100644 --- a/src/blackmisc/aviation/airlineicaocode.cpp +++ b/src/blackmisc/aviation/airlineicaocode.cpp @@ -8,7 +8,7 @@ #include "airlineicaocode.h" #include "callsign.h" -#include "blackmisc/simulation/matchingutils.h" +#include "logutils.h" #include "blackmisc/db/datastoreutility.h" #include "blackmisc/comparefunctions.h" #include "blackmisc/icons.h" @@ -392,7 +392,7 @@ namespace BlackMisc { if (this->isDbEqual(otherCode)) { - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("DB equal score: 100")); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("DB equal score: 100")); return 100; } const bool bothFromDb = this->isLoadedFromDb() && otherCode.isLoadedFromDb(); @@ -400,31 +400,31 @@ namespace BlackMisc if (otherCode.hasValidDesignator() && this->getDesignator() == otherCode.getDesignator()) { score += 60; - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Same designator: %1").arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same designator: %1").arg(score)); } // only for DB values we check VA if (bothFromDb && this->isVirtualAirline() == otherCode.isVirtualAirline()) { score += 20; - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("VA equality: %1").arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("VA equality: %1").arg(score)); } // consider the various names if (this->hasName() && this->getName() == otherCode.getName()) { score += 20; - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Same name '%1': %2").arg(this->getName()).arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same name '%1': %2").arg(this->getName()).arg(score)); } else if (this->hasTelephonyDesignator() && this->getTelephonyDesignator() == otherCode.getTelephonyDesignator()) { score += 15; - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Same telephony '%1': %2").arg(this->getTelephonyDesignator()).arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same telephony '%1': %2").arg(this->getTelephonyDesignator()).arg(score)); } else if (this->hasSimplifiedName() && this->getSimplifiedName() == otherCode.getSimplifiedName()) { score += 10; - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Same simplified name '%1': %2").arg(this->getSimplifiedName()).arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same simplified name '%1': %2").arg(this->getSimplifiedName()).arg(score)); } return score; } diff --git a/src/blackmisc/aviation/airlineicaocodelist.cpp b/src/blackmisc/aviation/airlineicaocodelist.cpp index 946e53a89..267c5c2c2 100644 --- a/src/blackmisc/aviation/airlineicaocodelist.cpp +++ b/src/blackmisc/aviation/airlineicaocodelist.cpp @@ -7,16 +7,25 @@ */ #include "blackmisc/aviation/airlineicaocodelist.h" +#include "blackmisc/aviation/logutils.h" +#include "blackmisc/logcategory.h" #include "blackmisc/country.h" #include "blackmisc/range.h" #include #include +#include namespace BlackMisc { namespace Aviation { + const CLogCategoryList &CAirlineIcaoCodeList::getLogCategories() + { + static const CLogCategoryList cats(CLogCategory::aviation()); + return cats; + } + CAirlineIcaoCodeList::CAirlineIcaoCodeList() { } diff --git a/src/blackmisc/aviation/livery.cpp b/src/blackmisc/aviation/livery.cpp index 5ab94726b..2423978d1 100644 --- a/src/blackmisc/aviation/livery.cpp +++ b/src/blackmisc/aviation/livery.cpp @@ -6,9 +6,9 @@ * or distributed except according to the terms contained in the LICENSE file. */ -#include "blackmisc/simulation/matchingutils.h" #include "blackmisc/db/datastoreutility.h" #include "blackmisc/aviation/livery.h" +#include "blackmisc/aviation/logutils.h" #include "blackmisc/compare.h" #include "blackmisc/comparefunctions.h" #include "blackmisc/logcategory.h" @@ -438,7 +438,7 @@ namespace BlackMisc { if (this->isDbEqual(otherLivery)) { - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Equal DB code: 100")); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Equal DB code: 100")); return 100; } @@ -454,7 +454,7 @@ namespace BlackMisc // 2 color liveries 25..85 score = 25; score += 60 * colorMultiplier; - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("2 color liveries, color multiplier %1: %2").arg(colorMultiplier).arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("2 color liveries, color multiplier %1: %2").arg(colorMultiplier).arg(score)); } else if (this->isAirlineLivery() && otherLivery.isAirlineLivery()) { @@ -465,10 +465,10 @@ namespace BlackMisc // same ICAO at least means 30, max 50 score = qRound(0.5 * this->getAirlineIcaoCode().calculateScore(otherLivery.getAirlineIcaoCode(), log)); score += 25 * colorMultiplier; - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("2 airline liveries, color multiplier %1: %2").arg(colorMultiplier).arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("2 airline liveries, color multiplier %1: %2").arg(colorMultiplier).arg(score)); if (this->isMilitary() == otherLivery.isMilitary()) { - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Mil.flag '%1' matches: %2").arg(boolToYesNo(this->isMilitary())).arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Mil.flag '%1' matches: %2").arg(boolToYesNo(this->isMilitary())).arg(score)); score += 10; } } @@ -479,7 +479,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 - CMatchingUtils::addLogDetailsToList(log, *this, QStringLiteral("Color/airline mixed, color multiplier %1: %2").arg(colorMultiplier).arg(score)); + CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Color/airline mixed, color multiplier %1: %2").arg(colorMultiplier).arg(score)); } return score; } diff --git a/src/blackmisc/aviation/logutils.cpp b/src/blackmisc/aviation/logutils.cpp new file mode 100644 index 000000000..6b801a6e9 --- /dev/null +++ b/src/blackmisc/aviation/logutils.cpp @@ -0,0 +1,81 @@ +/* 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 CLogCategoryList &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 CLogCategoryList &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 CLogCategoryList &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 CLogCategoryList &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 CLogCategoryList &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 CLogCategoryList &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 CLogCategoryList &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 CLogCategoryList &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({ CLogCategory::aviation() }); + return cats; + } + + CLogCategoryList CLogUtilities::categories(const CLogCategoryList &extraCategories) + { + if (extraCategories.isEmpty()) { return defaultCategories(); } + CLogCategoryList cats(defaultCategories()); + cats.push_back(extraCategories); + return cats; + } + } // ns +} // ns diff --git a/src/blackmisc/aviation/logutils.h b/src/blackmisc/aviation/logutils.h new file mode 100644 index 000000000..7b61b2c11 --- /dev/null +++ b/src/blackmisc/aviation/logutils.h @@ -0,0 +1,95 @@ +/* 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 + +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 CLogCategoryList &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 CLogCategoryList &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 CLogCategoryList &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 CLogCategoryList &extraCategories = {}, + CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo); + + //! Specialized log message for matching / reverse lookup + //! \threadsafe + static CStatusMessage logMessage( + const 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 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 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 CLivery &livery, + const QString &message, const CLogCategoryList &extraCategories = {}, + CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo); + + private: + //! Default categories + static const CLogCategoryList &defaultCategories(); + + //! Categories + static CLogCategoryList categories(const CLogCategoryList &extraCategories); + }; + } // ns +} // ns + +#endif // guard diff --git a/src/blackmisc/logcategory.h b/src/blackmisc/logcategory.h index b84b64e37..51f89ae32 100644 --- a/src/blackmisc/logcategory.h +++ b/src/blackmisc/logcategory.h @@ -11,9 +11,9 @@ #ifndef BLACKMISC_LOGCATEGORY_H #define BLACKMISC_LOGCATEGORY_H -#include "blackmisc/blackmiscexport.h" #include "blackmisc/metaclass.h" #include "blackmisc/valueobject.h" +#include "blackmisc/blackmiscexport.h" #include #include @@ -263,6 +263,13 @@ namespace BlackMisc return cat; } + //! Aviation specific + static const CLogCategory &aviation() + { + static const CLogCategory cat { "swift.aviation" }; + return cat; + } + //! All predefined special categories //! \note Human readable patterns are defined in CLogPattern::allHumanReadablePatterns static const QList &allSpecialCategories() @@ -270,6 +277,7 @@ namespace BlackMisc static const QList cats { uncategorized(), + aviation(), cache(), cmdLine(), context(), diff --git a/src/blackmisc/simulation/aircraftmodel.cpp b/src/blackmisc/simulation/aircraftmodel.cpp index 15183fd7d..c7d1a0141 100644 --- a/src/blackmisc/simulation/aircraftmodel.cpp +++ b/src/blackmisc/simulation/aircraftmodel.cpp @@ -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)); } diff --git a/src/blackmisc/simulation/aircraftmodellist.cpp b/src/blackmisc/simulation/aircraftmodellist.cpp index 9b1c46fdb..9bf2208cd 100644 --- a/src/blackmisc/simulation/aircraftmodellist.cpp +++ b/src/blackmisc/simulation/aircraftmodellist.cpp @@ -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; } diff --git a/src/blackmisc/simulation/matchingutils.cpp b/src/blackmisc/simulation/matchingutils.cpp index cb9840ae3..bf1d5c6de 100644 --- a/src/blackmisc/simulation/matchingutils.cpp +++ b/src/blackmisc/simulation/matchingutils.cpp @@ -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() diff --git a/src/blackmisc/simulation/matchingutils.h b/src/blackmisc/simulation/matchingutils.h index 2eb08b608..1cc524d60 100644 --- a/src/blackmisc/simulation/matchingutils.h +++ b/src/blackmisc/simulation/matchingutils.h @@ -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(); diff --git a/src/blackmisc/simulation/remoteaircraftprovider.cpp b/src/blackmisc/simulation/remoteaircraftprovider.cpp index 36c54a888..615943900 100644 --- a/src/blackmisc/simulation/remoteaircraftprovider.cpp +++ b/src/blackmisc/simulation/remoteaircraftprovider.cpp @@ -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); }