diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-09-02 12:19:30 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-09-02 12:19:30 +0000 |
| commit | 00795301d517e9084f8f9f75b1c271d2da8cc865 (patch) | |
| tree | a88f110e40ffc707e8f706de624d5e6200f29874 /src | |
| parent | 37da09eeb4ac168217a0d05ae40adfd8c0f35e64 (diff) | |
| download | qxmpp-00795301d517e9084f8f9f75b1c271d2da8cc865.tar.gz | |
move QXmppClientExtension to a separate file
Diffstat (limited to 'src')
| -rw-r--r-- | src/QXmppClient.cpp | 8 | ||||
| -rw-r--r-- | src/QXmppClient.h | 12 | ||||
| -rw-r--r-- | src/QXmppClientExtension.cpp | 52 | ||||
| -rw-r--r-- | src/QXmppClientExtension.h | 54 | ||||
| -rw-r--r-- | src/src.pro | 2 |
5 files changed, 116 insertions, 12 deletions
diff --git a/src/QXmppClient.cpp b/src/QXmppClient.cpp index f868d8f2..c4846a58 100644 --- a/src/QXmppClient.cpp +++ b/src/QXmppClient.cpp @@ -23,6 +23,7 @@ #include "QXmppClient.h" +#include "QXmppClientExtension.h" #include "QXmppLogger.h" #include "QXmppOutgoingClient.h" #include "QXmppMessage.h" @@ -188,6 +189,13 @@ QXmppClient::~QXmppClient() void QXmppClient::addExtension(QXmppClientExtension *extension) { extension->setParent(this); + + // Logging + bool check = connect(extension, SIGNAL(logMessage(QXmppLogger::MessageType, QString)), + d->stream, SIGNAL(logMessage(QXmppLogger::MessageType, QString))); + Q_ASSERT(check); + Q_UNUSED(check); + d->extensions << extension; } diff --git a/src/QXmppClient.h b/src/QXmppClient.h index f3c43c04..e15ee8d3 100644 --- a/src/QXmppClient.h +++ b/src/QXmppClient.h @@ -247,16 +247,4 @@ private: QXmppClientPrivate * const d; }; -/// \brief The QXmppClientExtension class is the base class for QXmppClient -/// extensions. -/// - -class QXmppClientExtension : public QObject -{ - Q_OBJECT - -public: - virtual bool handleStanza(QXmppStream *stream, const QDomElement &stanza) = 0; -}; - #endif // QXMPPCLIENT_H diff --git a/src/QXmppClientExtension.cpp b/src/QXmppClientExtension.cpp new file mode 100644 index 00000000..6794a800 --- /dev/null +++ b/src/QXmppClientExtension.cpp @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2008-2010 The QXmpp developers + * + * Author: + * Jeremy Lainé + * + * Source: + * http://code.google.com/p/qxmpp + * + * This file is a part of QXmpp library. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + +#include "QXmppClientExtension.h" + +/// Logs a debugging message. +/// +/// \param message + +void QXmppClientExtension::debug(const QString &message) +{ + emit logMessage(QXmppLogger::DebugMessage, message); +} + +/// Logs an informational message. +/// +/// \param message + +void QXmppClientExtension::info(const QString &message) +{ + emit logMessage(QXmppLogger::InformationMessage, message); +} + +/// Logs a warning message. +/// +/// \param message + +void QXmppClientExtension::warning(const QString &message) +{ + emit logMessage(QXmppLogger::WarningMessage, message); +} + diff --git a/src/QXmppClientExtension.h b/src/QXmppClientExtension.h new file mode 100644 index 00000000..627983b1 --- /dev/null +++ b/src/QXmppClientExtension.h @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2008-2010 The QXmpp developers + * + * Author: + * Jeremy Lainé + * + * Source: + * http://code.google.com/p/qxmpp + * + * This file is a part of QXmpp library. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + */ + +#ifndef QXMPPCLIENTEXTENSION_H +#define QXMPPCLIENTEXTENSION_H + +#include "QXmppLogger.h" + +class QDomElement; +class QXmppStream; + +/// \brief The QXmppClientExtension class is the base class for QXmppClient +/// extensions. +/// + +class QXmppClientExtension : public QObject +{ + Q_OBJECT + +public: + virtual bool handleStanza(QXmppStream *stream, const QDomElement &stanza) = 0; + +signals: + /// This signal is emitted to send logging messages. + void logMessage(QXmppLogger::MessageType type, const QString &msg); + +protected: + // Logging helpers + void debug(const QString&); + void info(const QString&); + void warning(const QString&); +}; + +#endif diff --git a/src/src.pro b/src/src.pro index 1a9d4b74..71872400 100644 --- a/src/src.pro +++ b/src/src.pro @@ -35,6 +35,7 @@ INSTALL_HEADERS = QXmppUtils.h \ QXmppByteStreamIq.h \ QXmppCallManager.h \ QXmppClient.h \ + QXmppClientExtension.h \ QXmppCodec.h \ QXmppConfiguration.h \ QXmppConstants.h \ @@ -90,6 +91,7 @@ SOURCES += QXmppUtils.cpp \ QXmppByteStreamIq.cpp \ QXmppCallManager.cpp \ QXmppClient.cpp \ + QXmppClientExtension.cpp \ QXmppCodec.cpp \ QXmppConfiguration.cpp \ QXmppConstants.cpp \ |
