File indexing completed on 2024-12-08 07:21:04

0001 /*
0002  * Copyright (C) 2007 Brad Hards <bradh@frogmouth.net>
0003  *
0004  * This library is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU Lesser General Public
0006  * License as published by the Free Software Foundation; either
0007  * version 2.1 of the License, or (at your option) any later version.
0008  *
0009  * This library is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  * Lesser General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU Lesser General Public
0015  * License along with this library; if not, write to the Free Software
0016  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
0017  * 02110-1301  USA
0018  *
0019  */
0020 
0021 #include "qca_support.h"
0022 
0023 namespace QCA {
0024 
0025 AbstractLogDevice::AbstractLogDevice(const QString &name, QObject *parent)
0026     : QObject(parent)
0027     , m_name(name)
0028 {
0029 }
0030 
0031 AbstractLogDevice::~AbstractLogDevice()
0032 {
0033 }
0034 
0035 QString AbstractLogDevice::name() const
0036 {
0037     return m_name;
0038 }
0039 
0040 void AbstractLogDevice::logTextMessage(const QString &message, Logger::Severity severity)
0041 {
0042     Q_UNUSED(message);
0043     Q_UNUSED(severity);
0044 }
0045 
0046 void AbstractLogDevice::logBinaryMessage(const QByteArray &blob, Logger::Severity severity)
0047 {
0048     Q_UNUSED(blob);
0049     Q_UNUSED(severity);
0050 }
0051 
0052 Logger::Logger()
0053 {
0054     // d pointer?
0055     m_logLevel = Logger::Notice;
0056 }
0057 
0058 Logger::~Logger()
0059 {
0060     // delete d;
0061 }
0062 
0063 QStringList Logger::currentLogDevices() const
0064 {
0065     return m_loggerNames;
0066 }
0067 
0068 void Logger::registerLogDevice(AbstractLogDevice *logger)
0069 {
0070     m_loggers.append(logger);
0071     m_loggerNames.append(logger->name());
0072 }
0073 
0074 void Logger::unregisterLogDevice(const QString &loggerName)
0075 {
0076     for (int i = 0; i < m_loggers.size(); ++i) {
0077         if (m_loggers[i]->name() == loggerName) {
0078             m_loggers.removeAt(i);
0079             --i; // we backstep, to make sure we check the new entry in this position.
0080         }
0081     }
0082     for (int i = 0; i < m_loggerNames.size(); ++i) {
0083         if (m_loggerNames[i] == loggerName) {
0084             m_loggerNames.removeAt(i);
0085             --i; // we backstep, to make sure we check the new entry in this position.
0086         }
0087     }
0088 }
0089 
0090 void Logger::setLevel(Severity level)
0091 {
0092     m_logLevel = level;
0093 }
0094 
0095 void Logger::logTextMessage(const QString &message, Severity severity)
0096 {
0097     if (severity <= level()) {
0098         for (AbstractLogDevice *logger : qAsConst(m_loggers)) {
0099             logger->logTextMessage(message, severity);
0100         }
0101     }
0102 }
0103 
0104 void Logger::logBinaryMessage(const QByteArray &blob, Severity severity)
0105 {
0106     if (severity <= level()) {
0107         for (AbstractLogDevice *logger : qAsConst(m_loggers)) {
0108             logger->logBinaryMessage(blob, severity);
0109         }
0110     }
0111 }
0112 
0113 }