From 08302c23bb88495b2ba955030ba4ef42078d6506 Mon Sep 17 00:00:00 2001 From: Roland Winklmeier Date: Sat, 18 Jan 2014 20:09:03 +0100 Subject: [PATCH] Remove obsolete logging framework This changes removes classes of the obsolete logging frame work and all its references. It was not used anywhere, but included in several headers. Had to add header QDateTime in some places, which was not correctly included and now missing. refs #90 --- .../samplesphysicalquantities.h | 1 - samples/cli_client/main.cpp | 2 - samples/interpolator/main.cpp | 3 - samples/pluginmgr/main.cpp | 3 - samples/voiceclient/main.cpp | 1 - src/blackmisc/avaircraftsituation.h | 1 + src/blackmisc/context.cpp | 1 - src/blackmisc/context.h | 20 -- src/blackmisc/debug.cpp | 140 ---------- src/blackmisc/debug.h | 122 --------- src/blackmisc/display.cpp | 248 ------------------ src/blackmisc/display.h | 94 ------- src/blackmisc/log.cpp | 228 ---------------- src/blackmisc/log.h | 194 -------------- src/blackmisc/logmessage.cpp | 53 ---- src/blackmisc/logmessage.h | 74 ------ src/blackmisc/nwtextmessage.h | 1 + src/blackmisc/pqbase.h | 1 - src/blackmisc/pqphysicalquantity.h | 1 - src/blackmisc/statusmessage.h | 1 + src/blackmisc/valueobject.h | 13 - src/driver/fsx/driver_fsx.cpp | 1 - 22 files changed, 3 insertions(+), 1200 deletions(-) delete mode 100644 src/blackmisc/debug.cpp delete mode 100644 src/blackmisc/debug.h delete mode 100644 src/blackmisc/display.cpp delete mode 100644 src/blackmisc/display.h delete mode 100644 src/blackmisc/log.cpp delete mode 100644 src/blackmisc/log.h delete mode 100644 src/blackmisc/logmessage.cpp delete mode 100644 src/blackmisc/logmessage.h diff --git a/samples/blackmiscquantities/samplesphysicalquantities.h b/samples/blackmiscquantities/samplesphysicalquantities.h index 5fba7dd00..bf338594d 100644 --- a/samples/blackmiscquantities/samplesphysicalquantities.h +++ b/samples/blackmiscquantities/samplesphysicalquantities.h @@ -7,7 +7,6 @@ #define BLACKMISCTEST_SAMPLESPHYSICALQUANTITIES_H #include "blackmisc/pqconstants.h" -#include "blackmisc/debug.h" #include namespace BlackMiscTest { diff --git a/samples/cli_client/main.cpp b/samples/cli_client/main.cpp index 170cad6d9..b9795dc4f 100644 --- a/samples/cli_client/main.cpp +++ b/samples/cli_client/main.cpp @@ -16,8 +16,6 @@ int main(int argc, char *argv[]) BlackMisc::CApplicationContext ctx; BlackMisc::IContext::setInstance(ctx); - BlackMisc::CDebug debug; - ctx.setObject(debug); BlackCore::CNetworkVatlib net; ctx.setObject(net); diff --git a/samples/interpolator/main.cpp b/samples/interpolator/main.cpp index 0aef41e10..d154097f6 100644 --- a/samples/interpolator/main.cpp +++ b/samples/interpolator/main.cpp @@ -7,7 +7,6 @@ #include "blackmisc/pqangle.h" #include "blackcore/interpolator.h" #include "blackmisc/context.h" -#include "blackmisc/debug.h" #include #include #include @@ -25,8 +24,6 @@ int main(int argc, char *argv[]) BlackMisc::CApplicationContext ctx; BlackMisc::IContext::setInstance(ctx); - BlackMisc::CDebug debug; - ctx.setObject(debug); QElapsedTimer timer; diff --git a/samples/pluginmgr/main.cpp b/samples/pluginmgr/main.cpp index 47d174c2e..18433ee37 100644 --- a/samples/pluginmgr/main.cpp +++ b/samples/pluginmgr/main.cpp @@ -1,7 +1,6 @@ #include "blackcore/pluginmgr.h" #include "blackmisc/plugins.h" #include "blackmisc/context.h" -#include "blackmisc/debug.h" #include #include #include @@ -12,8 +11,6 @@ int main(int argc, char *argv[]) BlackMisc::CApplicationContext ctx; BlackMisc::IContext::setInstance(ctx); - BlackMisc::CDebug debug; - ctx.setObject(debug); { const QString pluginPath = "../../build/bin"; diff --git a/samples/voiceclient/main.cpp b/samples/voiceclient/main.cpp index be01e0ec0..a4f14d6b5 100644 --- a/samples/voiceclient/main.cpp +++ b/samples/voiceclient/main.cpp @@ -16,7 +16,6 @@ using namespace BlackMisc::Voice; int main(int argc, char *argv[]) { QCoreApplication app (argc, argv); - BlackMisc::IContext::getInstance().setObject(*new BlackMisc::CDebug()); BlackMisc::IContext::getInstance().setObject(*new BlackCore::CVoiceVatlib()); Client client; diff --git a/src/blackmisc/avaircraftsituation.h b/src/blackmisc/avaircraftsituation.h index 068d1275e..b66c548c2 100644 --- a/src/blackmisc/avaircraftsituation.h +++ b/src/blackmisc/avaircraftsituation.h @@ -15,6 +15,7 @@ #include "avheading.h" #include "pqspeed.h" #include "valueobject.h" +#include namespace BlackMisc { diff --git a/src/blackmisc/context.cpp b/src/blackmisc/context.cpp index 21d557fed..ccc947d33 100644 --- a/src/blackmisc/context.cpp +++ b/src/blackmisc/context.cpp @@ -3,7 +3,6 @@ //! License, v. 2.0. If a copy of the MPL was not distributed with this //! file, You can obtain one at http://mozilla.org/MPL/2.0/ -#include "blackmisc/debug.h" #include "blackmisc/context.h" #include #include diff --git a/src/blackmisc/context.h b/src/blackmisc/context.h index ac1505fb2..586768cb1 100644 --- a/src/blackmisc/context.h +++ b/src/blackmisc/context.h @@ -6,7 +6,6 @@ #ifndef BLACKMISC_CONTEXT_H #define BLACKMISC_CONTEXT_H -#include "blackmisc/debug.h" #include #include #include @@ -161,25 +160,6 @@ namespace BlackMisc * \return */ virtual const QString &getApplicationName() const = 0; - - /*! - * Return the CDebug object. - * \return - * \throw std::logic_error The requested object is not present. - */ - CDebug &getDebug() - { - return getObject(); - } - - /*! - * Set the CDebug object. - * \param debug - */ - void setDebug(CDebug &debug) - { - setObject(debug); - } }; /*! diff --git a/src/blackmisc/debug.cpp b/src/blackmisc/debug.cpp deleted file mode 100644 index 79a90889f..000000000 --- a/src/blackmisc/debug.cpp +++ /dev/null @@ -1,140 +0,0 @@ -#include "blackmisc/debug.h" -#include "blackmisc/log.h" -#include "blackmisc/display.h" -#include "blackmisc/context.h" -#include -#include - -namespace BlackMisc -{ - -CDebug::CDebug() - : m_isInitialized(false), m_errorLog(NULL), m_warningLog(NULL), - m_infoLog(NULL), m_debugLog(NULL) -{ - -} - -void CDebug::create(const char * /** logPath **/, bool logInFile, bool eraseLastLog) -{ - if (!m_isInitialized) - { - setErrorLog(new CLog(IContext::getInstance(), CLog::eError)); - setWarningLog(new CLog(IContext::getInstance(), CLog::eWarning)); - setInfoLog(new CLog(IContext::getInstance(), CLog::eInfo)); - setDebugLog(new CLog(IContext::getInstance(), CLog::eDebug)); - - stdDisplayer = new CStdDisplay("DEFAULT_SD"); - - if (logInFile) - { - QDir fileinfo(m_logPath); - QString fn; - if (!m_logPath.isEmpty()) - { - m_logPath = fileinfo.absolutePath(); - fn += m_logPath; - } - else - { - } - - fileDisplayer = new CFileDisplay("", true, "DEFAULT_FD"); - fileDisplayer = new CFileDisplay("", eraseLastLog, "DEFAULT_FD"); - } - - init(true); - m_isInitialized = true; - } -} - -void CDebug::init(bool logInFile) -{ - m_debugLog->attachDisplay(stdDisplayer); - m_infoLog->attachDisplay(stdDisplayer); - m_warningLog->attachDisplay(stdDisplayer); - m_errorLog->attachDisplay(stdDisplayer); - - if (logInFile) - { - m_debugLog->attachDisplay(fileDisplayer); - m_infoLog->attachDisplay(fileDisplayer); - m_warningLog->attachDisplay(fileDisplayer); - m_errorLog->attachDisplay(fileDisplayer); - } -} - -QString CDebug::getLogDirectory() -{ - return m_logPath; -} - -CLog *CDebug::getErrorLog() -{ - return m_errorLog; -} - -void CDebug::setErrorLog(CLog *errorLog) -{ - m_errorLog = errorLog; -} - -CLog *CDebug::getWarningLog() -{ - return m_warningLog; -} - -void CDebug::setWarningLog(CLog *warningLog) -{ - m_warningLog = warningLog; -} - -CLog *CDebug::getInfoLog() -{ - return m_infoLog; -} - -void CDebug::setInfoLog(CLog *infoLog) -{ - m_infoLog = infoLog; -} - -CLog *CDebug::getDebugLog() -{ - return m_debugLog; -} - -void CDebug::setDebugLog(CLog *debugLog) -{ - m_debugLog = debugLog; -} - -CLogMessage CDebug::blackInfo(int line, const char *fileName, const char *methodName) -{ - create(); - m_infoLog->setLogInformation(line, fileName, methodName); - return CLogMessage(*this, CLog::eInfo); -} - -CLogMessage CDebug::blackWarning(int line, const char *fileName, const char *methodName) -{ - create(); - m_warningLog->setLogInformation(line, fileName, methodName); - return CLogMessage(*this, CLog::eWarning); -} - -CLogMessage CDebug::blackDebug(int line, const char *fileName, const char *methodName) -{ - create(); - m_debugLog->setLogInformation(line, fileName, methodName); - return CLogMessage(*this, CLog::eDebug); -} - -CLogMessage CDebug::blackError(int line, const char *fileName, const char *methodName) -{ - create(); - m_errorLog->setLogInformation(line, fileName, methodName); - return CLogMessage(*this, CLog::eError); -} - -} // namespace BlackMisc diff --git a/src/blackmisc/debug.h b/src/blackmisc/debug.h deleted file mode 100644 index 2b5d62ae9..000000000 --- a/src/blackmisc/debug.h +++ /dev/null @@ -1,122 +0,0 @@ -//! Copyright (C) 2013 Roland Winklmeier -//! This Source Code Form is subject to the terms of the Mozilla Public -//! License, v. 2.0. If a copy of the MPL was not distributed with this -//! file, You can obtain one at http://mozilla.org/MPL/2.0/ - -#ifndef BLACKMISC_DEBUG_H -#define BLACKMISC_DEBUG_H - -#include "blackmisc/log.h" -#include "blackmisc/display.h" -#include "blackmisc/logmessage.h" - -// This header contains debug macros - -namespace BlackMisc -{ - //! class CDebug - /*! This class implements the logging of the library. It holds a list of displays - takes care of any additional information needed, e.g. timestamps, filename etc. - To use the logging use the default displayer or implement your own one and - register it with this class. - */ - class CDebug : public QObject - { - Q_OBJECT - - public: - CDebug(); - - // internal use only - void create(const char *logPath = "", bool logInFile = true, bool eraseLastLog = false); - - // init Debug - void init(bool logInFile); - - /// Do not call this, unless you know what you're trying to do (it kills debug)! - void destroy() {} - - void changeLogDirectory(const QString &dir) { Q_UNUSED(dir); } - - QString getLogDirectory(); - - //! Pure virtual method returns the pointer to the global error log object - /*! - \return Pointer to CLog object - */ - CLog *getErrorLog(); - - //! Pure virtual function to set the global error log object - /*! - \param Pointer to CLog object - */ - void setErrorLog(CLog *errorLog); - - //! Pure virtual method returns the pointer to the global warning log object - /*! - \return Pointer to CLog object - */ - CLog *getWarningLog(); - - //! Pure virtual function to set the global warning log object - /*! - \param Pointer to CLog object - */ - void setWarningLog(CLog *warningLog); - - //! Pure virtual method returns the pointer to the global info log object - /*! - \return Pointer to CLog object - */ - CLog *getInfoLog(); - - //! Pure virtual function to set the global info log object - /*! - \param Pointer to CLog object - */ - void setInfoLog(CLog *infoLog); - - //! Pure virtual method returns the pointer to the global debug log object - /*! - \return Pointer to CLog object - */ - CLog *getDebugLog(); - - //! Pure virtual function to set the global debug log object - /*! - \param Pointer to CLog object - */ - void setDebugLog(CLog *debugLog); - - CLogMessage blackInfo(int line, const char *fileName, const char *methodName); - CLogMessage blackWarning(int line, const char *fileName, const char *methodName); - CLogMessage blackDebug(int line, const char *fileName, const char *methodName); - CLogMessage blackError(int line, const char *fileName, const char *methodName); - - private: - bool m_isInitialized; - - CStdDisplay *stdDisplayer; - CFileDisplay *fileDisplayer; - - QString m_logPath; - - CLog *m_errorLog; - CLog *m_warningLog; - CLog *m_infoLog; - CLog *m_debugLog; - }; - -#define bInfo(CONTEXT) ( (CONTEXT).getDebug().blackInfo(__LINE__, __FILE__, __FUNCTION__ ) ) -#define bWarning(CONTEXT) ( (CONTEXT).getDebug().blackWarning(__LINE__, __FILE__, __FUNCTION__ ) ) -#define bDebug(CONTEXT) ( (CONTEXT).getDebug().blackDebug(__LINE__, __FILE__, __FUNCTION__ ) ) -#define bError(CONTEXT) ( (CONTEXT).getDebug().blackError(__LINE__, __FILE__, __FUNCTION__ ) ) - -#define bAppInfo bInfo(BlackMisc::IContext::getInstance()) -#define bAppWarning bWarning(BlackMisc::IContext::getInstance()) -#define bAppDebug bDebug(BlackMisc::IContext::getInstance()) -#define bAppError bError(BlackMisc::IContext::getInstance()) - -} // namespace BlackMisc - -#endif //BLACKMISC_DEBUG_H diff --git a/src/blackmisc/display.cpp b/src/blackmisc/display.cpp deleted file mode 100644 index a9e744f25..000000000 --- a/src/blackmisc/display.cpp +++ /dev/null @@ -1,248 +0,0 @@ -//! Copyright (C) 2013 Roland Winklmeier -//! This Source Code Form is subject to the terms of the Mozilla Public -//! License, v. 2.0. If a copy of the MPL was not distributed with this -//! file, You can obtain one at http://mozilla.org/MPL/2.0/ - -#include "blackmisc/display.h" -#include "blackmisc/context.h" -#include -#include -#include - -namespace BlackMisc -{ - - static const char *LogTypeToString[7] = - { "", "Error", "Warning", "Info", "Debug", "Assert", "Unknown" }; - - ILogDisplay::ILogDisplay(const QString &displayName) - { - m_mutex = new QMutex (); - DisplayName = displayName; - } - - ILogDisplay::~ILogDisplay() - { - delete m_mutex; - } - - const char *ILogDisplay::logTypeToString (CLog::TLogType logType) - { - if (logType < CLog::eOff || logType >= CLog::eLast) - return "Not defined"; - - return LogTypeToString[logType]; - } - - QString ILogDisplay::currentDateToString () - { - QDateTime currentDateTime = QDateTime::currentDateTime(); - QString format("yyyy-MM-dd hh:mm:ss"); - return currentDateTime.toString(format); - } - - QString ILogDisplay::dateToString (const QDateTime &time) - { - QString format("yyyy-MM-dd hh:mm:ss"); - return time.toString(format); - } - - QString ILogDisplay::headLine () - { - QString header = QString("\n Logging started at %1\n").arg(currentDateToString()); - return header; - } - - /* - * Display the string where it does. - */ - void ILogDisplay::print (const CLog::SLogInformation &logInformation, const QString &message) - { - m_mutex->lock(); - doPrint( logInformation, message ); - m_mutex->unlock(); - } - - void CStdDisplay::doPrint (const CLog::SLogInformation &logInformation, const QString &message) - { - bool needSpace = false; - QString line; - - if (logInformation.m_logType != CLog::eOff) - { - line += logTypeToString(logInformation.m_logType); - needSpace = true; - } - - // Write thread identifier - if ( logInformation.m_threadId != 0 ) - { - if (needSpace) { line += " "; needSpace = false; } - line += QString("%1").arg(logInformation.m_threadId); - } - - if (logInformation.m_sourceFile != NULL) - { - if (needSpace) { line += " "; needSpace = false; } - line += QFileInfo (logInformation.m_sourceFile).fileName(); - needSpace = true; - } - - if (logInformation.m_line != -1) - { - if (needSpace) { line += " "; needSpace = false; } - line += QString("%1").arg(logInformation.m_line); - needSpace = true; - } - - if (logInformation.m_methodName != NULL) - { - if (needSpace) { line += " "; needSpace = false; } - line += logInformation.m_methodName; - needSpace = true; - } - - if (logInformation.m_applicationName != NULL) - { - if (needSpace) { line += " "; needSpace = false; } - line += logInformation.m_applicationName; - needSpace = true; - } - - if (needSpace) { line += " : "; needSpace = false; } - - line += message; - QTextStream out(stdout); - out << line; - } - - CFileDisplay::CFileDisplay (const QString &filename, bool eraseLastLog, const QString &displayName) : - ILogDisplay (displayName), m_needHeader(true) - { - setParam (filename, eraseLastLog); - - } - - CFileDisplay::CFileDisplay () : - ILogDisplay (""), m_needHeader(true) - { - - } - - CFileDisplay::~CFileDisplay () - { - if ( m_file->handle() != -1 ) - { - m_file->close(); - } - - delete m_file; - } - - void CFileDisplay::setParam (const QString &filename, bool eraseLastLog) - { - m_fileName = filename; - - m_file = new QFile(m_fileName); - - if (eraseLastLog) - { - // Erase all the derived log files - int i = 0; - bool fileExist = true; - while (fileExist) - { - QFileInfo info(m_fileName); - QString fileToDelete = info.absolutePath() + "/" + info.baseName() + QString("%1").arg(i, 3, 10, QChar('0')) + info.completeSuffix(); - if ( QFile::exists(fileToDelete) ) - QFile(fileToDelete).remove(); - else - fileExist = false; - i++; - } - } - - if ( m_file->handle() != -1 ) - { - m_file->close(); - } - } - - void CFileDisplay::doPrint (const CLog::SLogInformation &logInformation, const QString &message) - { - bool needSpace = false; - QString line; - - // if the filename is not set, don't log - if ( m_fileName.isEmpty() ) return; - - if (logInformation.m_dateTime.isValid()) - { - line += dateToString(logInformation.m_dateTime); - needSpace = true; - } - - if (logInformation.m_logType != CLog::eOff) - { - if (needSpace) { line += " "; needSpace = false; } - line += logTypeToString(logInformation.m_logType); - needSpace = true; - } - - if (!logInformation.m_applicationName.isEmpty()) - { - if (needSpace) { line += " "; needSpace = false; } - line += logInformation.m_applicationName; - needSpace = true; - } - - if (logInformation.m_sourceFile != NULL) - { - if (needSpace) { line += " "; needSpace = false; } - line += QFileInfo (logInformation.m_sourceFile).fileName(); - needSpace = true; - } - - if (logInformation.m_line != -1) - { - if (needSpace) { line += " "; needSpace = false; } - line += QString("%1").arg(logInformation.m_line); - needSpace = true; - } - - if (logInformation.m_methodName != NULL) - { - if (needSpace) { line += " "; needSpace = false; } - line += logInformation.m_methodName; - needSpace = true; - } - - if (needSpace) { line += " : "; needSpace = false; } - - line += message; - - // Try to open the file if the handle is invalid - if (m_file->handle() == -1) - { - if ( !m_file->open(QIODevice::WriteOnly) ) { - // suppress warning about unsafe strerror - printf ("Can't open log file '%s': %d (%s)\n", m_fileName.toLatin1().constData(), errno, ""/*strerror(errno)*/); - } - } - - if (m_file->handle() != -1) - { - QTextStream out(m_file); - - if (m_needHeader) - { - const QString hs = headLine(); - out << hs; - m_needHeader = false; - } - - if(!line.isEmpty()) - out << line; - } - } -} diff --git a/src/blackmisc/display.h b/src/blackmisc/display.h deleted file mode 100644 index 3c5b1786c..000000000 --- a/src/blackmisc/display.h +++ /dev/null @@ -1,94 +0,0 @@ -//! Copyright (C) 2013 Roland Winklmeier -//! This Source Code Form is subject to the terms of the Mozilla Public -//! License, v. 2.0. If a copy of the MPL was not distributed with this -//! file, You can obtain one at http://mozilla.org/MPL/2.0/ - -#ifndef DISPLAY_H -#define DISPLAY_H - -#include "blackmisc/log.h" -#include -#include - -namespace BlackMisc -{ - class ILogDisplay - { - public: - /// Constructor - ILogDisplay(const QString &displayName ); - - /// Destructor - virtual ~ILogDisplay(); - - /// Display the string where it does. - void print( const CLog::SLogInformation &logInformation, const QString &message ); - - /// This is the identifier for a displayer, it is used to find or remove a displayer - QString DisplayName; - - protected: - /// Method to implement in the derived class - virtual void doPrint(const CLog::SLogInformation &logInformation, const QString &message) = 0; - - // Return the header string with date (for the first line of the log) - static QString headLine (); - - public: - - /// Convert log type to string - static const char *logTypeToString (CLog::TLogType logType); - - /// Convert the current date to human string - static QString currentDateToString (); - - /// Convert date to "2000/01/14 10:05:17" string - static QString dateToString (const QDateTime &time); - - private: - - QMutex *m_mutex; - - }; - - class CStdDisplay : virtual public ILogDisplay - { - public: - CStdDisplay ( const QString &displayerName = QString("")) : ILogDisplay (displayerName) {} - - protected: - - /// Display the string to stdout and OutputDebugString on Windows - virtual void doPrint (const CLog::SLogInformation &logInformation, const QString &message); - - }; - - class CFileDisplay : virtual public ILogDisplay - { - public: - - /// Constructor - CFileDisplay (const QString &filename, bool eraseLastLog = false, const QString &displayName = ""); - - CFileDisplay (); - - ~CFileDisplay (); - - /// Set Parameter of the displayer if not set at the ctor time - void setParam (const QString &filename, bool eraseLastLog = false); - - protected: - /// Put the string into the file. - virtual void doPrint (const CLog::SLogInformation &logInformation, const QString &message); - - private: - QString m_fileName; - - QFile *m_file; - - bool m_needHeader; - }; -} // BlackMisc - - -#endif // DISPLAY_H diff --git a/src/blackmisc/log.cpp b/src/blackmisc/log.cpp deleted file mode 100644 index bee41bf4c..000000000 --- a/src/blackmisc/log.cpp +++ /dev/null @@ -1,228 +0,0 @@ -//! Copyright (C) 2013 Roland Winklmeier -//! This Source Code Form is subject to the terms of the Mozilla Public -//! License, v. 2.0. If a copy of the MPL was not distributed with this -//! file, You can obtain one at http://mozilla.org/MPL/2.0/ - -#ifndef UNICODE -#define UNICODE -#endif - -#include "blackmisc/log.h" -#include "blackmisc/display.h" -#include "blackmisc/debug.h" -#include "blackmisc/context.h" - -#include -#include -#include - -//TODO do we still need these platform includes here? -#ifdef Q_OS_WIN -# ifndef NOMINMAX -# define NOMINMAX -# include -# include -# endif -#else -# include -#endif - -namespace BlackMisc -{ -CLog::CLog(IContext &context, TLogType logType) : m_context(context), m_logType(logType) -{ -} - -CLog::~CLog(void) -{ -} - -void CLog::printWithNewLine(QString &message) -{ - //! If we have no displays, we have nothing to do. - if (hasNoDisplays()) - { - return; - } - - QChar newLine = '\n'; - - //! We should print the message with a new line. So check - //! if one is already there. If not append it. - if (!message.endsWith(newLine, Qt::CaseInsensitive)) - message.append(newLine); - - printString(message); -} - -void CLog::print(QString &message) -{ - //! If we have no displays, we have nothing to do. - if (hasNoDisplays()) - { - return; - } - - printString(message); -} - -void CLog::printString(QString &message) -{ - QString logDisplay; - - //! Just in case, lets set the default name - m_context.setDefaultApplicationName(); - - //! If the current line is empty, then put some information as - //! the prefix. - //! Be aware: This information must be set by the \sa setLogInformation() - //! before. - if (m_logLine.isEmpty()) - { - m_logInformation.m_dateTime = QDateTime::currentDateTime(); - m_logInformation.m_logType = m_logType; - m_logInformation.m_applicationName = m_context.getApplicationName(); - m_logInformation.m_threadId = 0; //getThreadId(); - m_logInformation.m_sourceFile = m_sourceFile; - m_logInformation.m_line = m_line; - m_logInformation.m_methodName = m_methodName; - - m_logLine = message; - } - else - { - m_logLine += message; - } - - //! If this is not the end of the line, we are done for now. - if (! message.contains('\n')) - { - return; - } - - for (TLogDisplayList::iterator it = m_logDisplays.begin(); it != m_logDisplays.end(); ++it) - { - (*it)->print(m_logInformation, m_logLine); - } - - //! Reset everything for the next line - m_logLine.clear(); - resetLogInformation(); -} - -void CLog::attachDisplay(ILogDisplay *display) -{ - //! Display must be a valid pointer - if (display == NULL) - { - printf("Trying to add a NULL pointer\n"); - return; - } - - //! Check if it is already attached - if (!m_logDisplays.contains(display)) - { - m_logDisplays.push_back(display); - } - else - { - bWarning(m_context) << "Couldn't attach the display - already in the list!"; - } -} - -ILogDisplay *CLog::getDisplay(const QString &displayName) -{ - //! Must be a valid name - if (displayName.isEmpty()) - { - bWarning(m_context) << "Cannot return a display with empty name!"; - return NULL; - } - - TLogDisplayList::const_iterator it; - - //! Loop through the list and find the candidate - for (it = m_logDisplays.constBegin(); it != m_logDisplays.constEnd(); ++it) - { - //! Does it have the desired name? - if ((*it)->DisplayName == displayName) - { - return *it; - } - } - return NULL; -} - -void CLog::dettachDisplay(ILogDisplay *logDisplay) -{ - //! Must be a valid pointer - if (logDisplay == NULL) - { - bWarning(m_context) << "Cannot remove a NULL displayer!"; - return; - } - - //! We should have only one, but just in case. - m_logDisplays.removeAll(logDisplay); - -} - -void CLog::dettachDisplay(const QString &displayName) -{ - //! Must be a valid name - if (displayName.isEmpty()) - { - bWarning(m_context) << "Cannot remove displayer with empty name!"; - return; - } - - TLogDisplayList::iterator it; - - for (it = m_logDisplays.begin(); it != m_logDisplays.end();) - { - if ((*it)->DisplayName == displayName) - { - it = m_logDisplays.erase(it); - } - else - { - ++it; - } - } -} - -bool CLog::isAttached(ILogDisplay *logDisplay) const -{ - return m_logDisplays.contains(logDisplay); -} - -void CLog::setLogInformation(int line, const char *sourceFile, const char *methodName) -{ - //! We have to make sure, we at least one display. - if (!hasNoDisplays()) - { - m_mutex.lock(); - m_posSet++; - m_sourceFile = sourceFile; - m_line = line; - m_methodName = methodName; - } -} - -void CLog::resetLogInformation() -{ - //! It should be impossible that this gets called, withoud - //! having a attached display. - Q_ASSERT(!hasNoDisplays()); - - if (m_posSet > 0) - { - m_sourceFile = NULL; - m_line = -1; - m_methodName = NULL; - m_posSet--; - m_mutex.unlock(); - } -} - -} // namespace BlackMisc diff --git a/src/blackmisc/log.h b/src/blackmisc/log.h deleted file mode 100644 index 1913da3bc..000000000 --- a/src/blackmisc/log.h +++ /dev/null @@ -1,194 +0,0 @@ -//! Copyright (C) 2013 Roland Winklmeier -//! This Source Code Form is subject to the terms of the Mozilla Public -//! License, v. 2.0. If a copy of the MPL was not distributed with this -//! file, You can obtain one at http://mozilla.org/MPL/2.0/ - -#ifndef BLACKMISC_LOG_H -#define BLACKMISC_LOG_H - -#include -#include -#include -#include - -namespace BlackMisc -{ - - class ILogDisplay; - class IContext; - - //! Logging class - /*! This class implements the logging of the library. It holds a list of displays - takes care of any additional information needed, e.g. timestamps, filename etc. - To use the logging use the default displayer or implement your own one and - register it with this class. - */ - class CLog - { - public: - //! Logging type. - /*! This enum holds all different available log types. */ - enum TLogType - { - eOff = 0, - eError, - eWarning, - eInfo, - eDebug, - eLast - }; - - //! SLogParameter - /*! - This structs capsulates all information needed to output a log line. - */ - struct SLogInformation - { - SLogInformation() : m_dateTime(), m_logType(CLog::eOff), m_applicationName(), m_threadId(0), m_sourceFile(NULL), m_line(-1), m_methodName(NULL) {} - QDateTime m_dateTime; - TLogType m_logType; - QString m_applicationName; - quint32 m_threadId; - const char *m_sourceFile; - qint32 m_line; - const char *m_methodName; - }; - - CLog(IContext &context, TLogType logType = eOff); - - //! CLog destructor. - virtual ~CLog(void); - - /*! - * Display - */ - - //! This method adds a Displayer to the Log object - /*! CLog does not own the pointer. It is the callers responsibility - to allocate the displayer and remove it after using. */ - /*! - \param display A pointer to a display. - \sa ILogDisplay - */ - void attachDisplay(BlackMisc::ILogDisplay *display); - - //! This method returns the pointer to a registered display. - /*! - \return display A pointer to a display. - */ - ILogDisplay *getDisplay(const QString &displayName); - - //! Removes a display - /*! - \param logDisplay Pointer to the display. - */ - void dettachDisplay(ILogDisplay *logDisplay); - - //! Removes a display by its name. - /*! - \param displayName Name of the display. - */ - void dettachDisplay(const QString &displayName); - - //! Checks if the displayer is added - /*! - \param logDisplay Pointer to a display. - \return Returns true if display is attached, otherwise false. - */ - bool isAttached(ILogDisplay *logDisplay) const; - - //! Checks if the object has any attached displays - /*! - \return Returns true if no display is attached, otherwise false. - */ - bool hasNoDisplays() const { return m_logDisplays.empty(); } - - //! Sets any additional information as prefix to the log message - /*! - \param fileName This is the name of the corresponding source file. - \param methodName This is the name of calling method. - */ - void setLogInformation(int line, const char *fileName, const char *methodName = NULL); - - //! Prints the message and adds an new line character at the end - /*! - \param message Message string, which has to be logged - */ - void printWithNewLine(QString &message); - - //! Prints the message as is and appends no additional characters - /*! - \param message Message string, which has to be logged - */ - void print(QString &message); - - void printString(QString &message); - - protected: - - /// Display a string in decorated form to all attached displayers. - void displayString(const char *str); - - /// Symetric to setPosition(). Automatically called by display...(). Do not call if noDisplayer(). - void resetLogInformation(); - - //! Context - IContext &m_context; - - //! Logging Type. - /*! - Specifies which logging type should be used. - Possible are: Error, Warning, Info, Debug and Assert. - */ - TLogType m_logType; - - //! Source file name. - /*! - Specifies the name of the source file, log message was called from. - */ - const char *m_sourceFile; - - //! Code line. - /*! - Specifies the line in the source file, log message was called from. - */ - qint32 m_line; - - //! Method name. - /*! - Specifies the method in the source file, log message was called from. - */ - const char *m_methodName; - - /*! - \typedef TLogDisplayerMap - QList container holding pointers to ILogDisplay objects - \sa ArrayList::GetEnumerator, \sa List::GetEnumerator - */ - typedef QList TLogDisplayList; - - //! List of all attached displays. - TLogDisplayList m_logDisplays; - - //! Mutex object - /*! - This makes our class thread safe. - */ - QMutex m_mutex; - - //! Position - quint32 m_posSet; - - //! Log message string - /*! - This variable is used, if a log line consists of two or more - calls. The first ones are then stored temporary in this variable - until one message ends with a line feed. - */ - QString m_logLine; - SLogInformation m_logInformation; - }; - -} // namespace BlackMisc - -#endif //BLACKMISC_LOG_H diff --git a/src/blackmisc/logmessage.cpp b/src/blackmisc/logmessage.cpp deleted file mode 100644 index 7740ee607..000000000 --- a/src/blackmisc/logmessage.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include "blackmisc/logmessage.h" -#include "blackmisc/debug.h" - -namespace BlackMisc -{ - -CLogMessage::LogStream::LogStream(CLog::TLogType type) - : output(&buffer, QIODevice::WriteOnly), - type(type), needSpace(true), enableOutput(true), reference(1) -{} - -CLogMessage::CLogMessage(CDebug &debug_, CLog::TLogType type) - : logStream(new LogStream(type)), debug(debug_) -{ -} - -CLogMessage::CLogMessage(const CLogMessage &other) - : logStream(other.logStream), debug(other.debug) -{ - ++logStream->reference; -} - -CLogMessage::~CLogMessage() -{ - if (!--logStream->reference) - { - if (logStream->enableOutput) - { - switch (logStream->type) - { - case CLog::eWarning: - debug.getWarningLog()->printWithNewLine(logStream->buffer); - break; - - case CLog::eInfo: - debug.getInfoLog()->printWithNewLine(logStream->buffer); - break; - - case CLog::eDebug: - debug.getDebugLog()->printWithNewLine(logStream->buffer); - break; - - case CLog::eError: - default: - debug.getErrorLog()->printWithNewLine(logStream->buffer); - break; - } - } - delete logStream; - } -} - -} // namespace Blackib diff --git a/src/blackmisc/logmessage.h b/src/blackmisc/logmessage.h deleted file mode 100644 index 74e3c04db..000000000 --- a/src/blackmisc/logmessage.h +++ /dev/null @@ -1,74 +0,0 @@ -//! Copyright (C) 2013 Roland Winklmeier -//! This Source Code Form is subject to the terms of the Mozilla Public -//! License, v. 2.0. If a copy of the MPL was not distributed with this -//! file, You can obtain one at http://mozilla.org/MPL/2.0/ - -#ifndef LOGMESSAGE_H -#define LOGMESSAGE_H - -#include "blackmisc/log.h" -#include - -namespace BlackMisc -{ - class CDebug; - - class CLogMessage - { - struct LogStream - { - //! Constructor - LogStream(CLog::TLogType type); - - QTextStream output; - - //! Message Buffer - QString buffer; - - //! Logging type - CLog::TLogType type; - bool needSpace; - bool enableOutput; - - //! Reference count - quint32 reference; - } *logStream; - - CDebug &debug; - - public: - CLogMessage(CDebug &debug_, CLog::TLogType type); - CLogMessage(const CLogMessage &other); - - ~CLogMessage(); - - inline CLogMessage &maybeSpace() { if (logStream->needSpace) logStream->output << ' '; return *this; } - - inline CLogMessage &operator<<(QChar t) { logStream->output << '\'' << t << '\''; return maybeSpace(); } - inline CLogMessage &operator<<(bool t) { logStream->output << (t ? "true" : "false"); return maybeSpace(); } - inline CLogMessage &operator<<(char t) { logStream->output << t; return maybeSpace(); } - inline CLogMessage &operator<<(signed short t) { logStream->output << t; return maybeSpace(); } - inline CLogMessage &operator<<(unsigned short t) { logStream->output << t; return maybeSpace(); } - inline CLogMessage &operator<<(signed int t) { logStream->output << t; return maybeSpace(); } - inline CLogMessage &operator<<(unsigned int t) { logStream->output << t; return maybeSpace(); } - inline CLogMessage &operator<<(signed long t) { logStream->output << t; return maybeSpace(); } - inline CLogMessage &operator<<(unsigned long t) { logStream->output << t; return maybeSpace(); } - inline CLogMessage &operator<<(qint64 t) - { logStream->output << QString::number(t); return maybeSpace(); } - inline CLogMessage &operator<<(quint64 t) - { logStream->output << QString::number(t); return maybeSpace(); } - inline CLogMessage &operator<<(float t) { logStream->output << t; return maybeSpace(); } - inline CLogMessage &operator<<(double t) { logStream->output << t; return maybeSpace(); } - inline CLogMessage &operator<<(const char *t) { logStream->output << QString::fromLatin1(t); return maybeSpace(); } - inline CLogMessage &operator<<(const QString &t) { logStream->output << '\"' << t << '\"'; return maybeSpace(); } - inline CLogMessage &operator<<(const QByteArray &t) { logStream->output << '\"' << t << '\"'; return maybeSpace(); } - - inline CLogMessage &operator<<(QTextStreamManipulator m) - { logStream->output << m; return *this; } - - - }; - -} // BlackMisc - -#endif // guard diff --git a/src/blackmisc/nwtextmessage.h b/src/blackmisc/nwtextmessage.h index 5b9a4bd62..d02f553fa 100644 --- a/src/blackmisc/nwtextmessage.h +++ b/src/blackmisc/nwtextmessage.h @@ -13,6 +13,7 @@ #include "pqfrequency.h" #include "avcallsign.h" #include "valueobject.h" +#include namespace BlackMisc { diff --git a/src/blackmisc/pqbase.h b/src/blackmisc/pqbase.h index 02aabf833..0425b7e10 100644 --- a/src/blackmisc/pqbase.h +++ b/src/blackmisc/pqbase.h @@ -7,7 +7,6 @@ #define BLACKMISC_PQBASE_H #include "blackmisc/valueobject.h" -#include "blackmisc/debug.h" #include "blackmisc/mathematics.h" #include #include diff --git a/src/blackmisc/pqphysicalquantity.h b/src/blackmisc/pqphysicalquantity.h index 18ce23f68..bab39cc51 100644 --- a/src/blackmisc/pqphysicalquantity.h +++ b/src/blackmisc/pqphysicalquantity.h @@ -9,7 +9,6 @@ #include "blackmisc/pqbase.h" #include "blackmisc/pqunits.h" #include "blackmisc/mathematics.h" -#include "blackmisc/debug.h" #include #include #include diff --git a/src/blackmisc/statusmessage.h b/src/blackmisc/statusmessage.h index 3b8054712..f3a3423b9 100644 --- a/src/blackmisc/statusmessage.h +++ b/src/blackmisc/statusmessage.h @@ -2,6 +2,7 @@ #define BLACKMISC_STATUSMESSAGE_H #include "valueobject.h" +#include namespace BlackMisc { diff --git a/src/blackmisc/valueobject.h b/src/blackmisc/valueobject.h index ef8cbb030..4fe2d3289 100644 --- a/src/blackmisc/valueobject.h +++ b/src/blackmisc/valueobject.h @@ -1,7 +1,6 @@ #ifndef BLACKMISC_VALUEOBJECT_H #define BLACKMISC_VALUEOBJECT_H -#include "blackmisc/debug.h" #include #include #include @@ -69,18 +68,6 @@ namespace BlackMisc return stream; } - /*! - * \brief Stream operator << for log messages - * \param log - * \param uc - * \return - */ - friend CLogMessage operator<<(CLogMessage log, const CValueObject &uc) - { - log << uc.stringForStreaming(); - return log; - } - /*! * \brief Stream operator << for std::cout * \param ostr diff --git a/src/driver/fsx/driver_fsx.cpp b/src/driver/fsx/driver_fsx.cpp index ebafa7710..989f07c34 100644 --- a/src/driver/fsx/driver_fsx.cpp +++ b/src/driver/fsx/driver_fsx.cpp @@ -14,7 +14,6 @@ #include -#include #include "driver_fsx.h" extern "C"