From f288d3d0f24a8b1afb84393c7b0a2d79d88e9b75 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 8 Nov 2017 02:45:53 +0100 Subject: [PATCH] Ref T182, improved matcher logging utility functions * Also logging for livery, airline ICAO, aircraft ICAO * Set a default category in case such message will be written to log --- src/blackmisc/simulation/matchingutils.cpp | 67 ++++++++++++++++++--- src/blackmisc/simulation/matchingutils.h | 69 ++++++++++++++++++---- 2 files changed, 117 insertions(+), 19 deletions(-) diff --git a/src/blackmisc/simulation/matchingutils.cpp b/src/blackmisc/simulation/matchingutils.cpp index 76499e42e..9539e56be 100644 --- a/src/blackmisc/simulation/matchingutils.cpp +++ b/src/blackmisc/simulation/matchingutils.cpp @@ -10,28 +10,81 @@ #include "matchingutils.h" using namespace BlackMisc; -using namespace BlackMisc::Simulation; +using namespace BlackMisc::Aviation; namespace BlackMisc { namespace Simulation { - void CMatchingUtils::addLogDetailsToList(CStatusMessageList *log, const BlackMisc::Simulation::CSimulatedAircraft &remoteAircraft, const QString &message, const CLogCategoryList &categories, CStatusMessage::StatusSeverity s) + void CMatchingUtils::addLogDetailsToList(CStatusMessageList *log, const CSimulatedAircraft &remoteAircraft, const QString &message, const CLogCategoryList &extraCategories, CStatusMessage::StatusSeverity s) { - CMatchingUtils::addLogDetailsToList(log, remoteAircraft.getCallsign(), message, categories, s); + CMatchingUtils::addLogDetailsToList(log, remoteAircraft.getCallsign(), message, extraCategories, s); } - void CMatchingUtils::addLogDetailsToList(CStatusMessageList *log, const BlackMisc::Aviation::CCallsign &callsign, const QString &message, const CLogCategoryList &categories, CStatusMessage::StatusSeverity 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, categories, s)); + log->push_back(CMatchingUtils::logMessage(callsign, message, extraCategories, s)); } - CStatusMessage CMatchingUtils::logMessage(const BlackMisc::Aviation::CCallsign &callsign, const QString &message, const CLogCategoryList &categories, CStatusMessage::StatusSeverity s) + void CMatchingUtils::addLogDetailsToList(CStatusMessageList *log, const CAircraftIcaoCode &icao, const QString &message, const CLogCategoryList &extraCategories, CStatusMessage::StatusSeverity s) { - const CStatusMessage m(categories, s, callsign.isEmpty() ? message.trimmed() : callsign.toQString() + ": " + message.trimmed()); + 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; + } + + const CLogCategoryList &CMatchingUtils::defaultCategories() + { + static const CLogCategoryList cats({ CLogCategory::matching() }); + return cats; + } + + CLogCategoryList CMatchingUtils::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/simulation/matchingutils.h b/src/blackmisc/simulation/matchingutils.h index 7a72e4812..dc601ccc9 100644 --- a/src/blackmisc/simulation/matchingutils.h +++ b/src/blackmisc/simulation/matchingutils.h @@ -12,9 +12,9 @@ #ifndef BLACKMISC_SIMULATION_MATCHINGUTILS_H #define BLACKMISC_SIMULATION_MATCHINGUTILS_H -#include "blackmisc/blackmiscexport.h" #include "blackmisc/simulation/simulatedaircraft.h" #include "blackmisc/statusmessagelist.h" +#include "blackmisc/blackmiscexport.h" namespace BlackMisc { @@ -29,23 +29,68 @@ namespace BlackMisc //! Specialized log for matching / reverse lookup //! \threadsafe static void addLogDetailsToList( - BlackMisc::CStatusMessageList *log, const BlackMisc::Simulation::CSimulatedAircraft &remoteAircraft, - const QString &message, const BlackMisc::CLogCategoryList &categories = {}, - BlackMisc::CStatusMessage::StatusSeverity s = BlackMisc::CStatusMessage::SeverityInfo); + CStatusMessageList *log, const Simulation::CSimulatedAircraft &remoteAircraft, + const QString &message, const CLogCategoryList &extraCategories = {}, + CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo); //! Specialized log for matching / reverse lookup //! \threadsafe - static void addLogDetailsToList( - BlackMisc::CStatusMessageList *log, const BlackMisc::Aviation::CCallsign &callsign, - const QString &message, const BlackMisc::CLogCategoryList &categories = {}, - BlackMisc::CStatusMessage::StatusSeverity s = BlackMisc::CStatusMessage::SeverityInfo); + 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 BlackMisc::CStatusMessage logMessage( - const BlackMisc::Aviation::CCallsign &callsign, - const QString &message, const BlackMisc::CLogCategoryList &categories = {}, - BlackMisc::CStatusMessage::StatusSeverity s = BlackMisc::CStatusMessage::SeverityInfo); + 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(); + + //! Categories + static CLogCategoryList categories(const CLogCategoryList &extraCategories); }; } // ns } // ns