aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-11-16 00:49:31 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-11-16 00:49:31 +0000
commitb6444ac7f5fcdc163eb14e98d052fc84e725fa29 (patch)
tree46286778b58eda65c6b5d8f3ac16994c8007b3d4 /src
parent6c50c77fd7b85a1db2c211b45acf394f5a55ca4e (diff)
downloadqxmpp-b6444ac7f5fcdc163eb14e98d052fc84e725fa29.tar.gz
make QXmppClient, QXmppClientExtension, QXmppServer and QXmppServerExtension inherit QXmppLoggable
Diffstat (limited to 'src')
-rw-r--r--src/QXmppClient.cpp26
-rw-r--r--src/QXmppClient.h5
-rw-r--r--src/QXmppClientExtension.cpp27
-rw-r--r--src/QXmppClientExtension.h11
-rw-r--r--src/QXmppServer.cpp12
-rw-r--r--src/QXmppServer.h5
-rw-r--r--src/QXmppServerExtension.cpp33
-rw-r--r--src/QXmppServerExtension.h10
8 files changed, 30 insertions, 99 deletions
diff --git a/src/QXmppClient.cpp b/src/QXmppClient.cpp
index 66d9a52b..f2979c3b 100644
--- a/src/QXmppClient.cpp
+++ b/src/QXmppClient.cpp
@@ -51,6 +51,7 @@ public:
QXmppClientPrivate(QXmppClient *);
QList<QXmppClientExtension*> extensions;
+ QXmppLogger *logger;
QXmppOutgoingClient* stream; ///< Pointer to QXmppOutgoingClient object a wrapper over
///< TCP socket and XMPP protocol
QXmppPresence clientPresence; ///< Stores the current presence of the connected client
@@ -134,7 +135,7 @@ void QXmppClientPrivate::addProperCapability(QXmppPresence& presence)
/// The default value is 0.
QXmppClient::QXmppClient(QObject *parent)
- : QObject(parent),
+ : QXmppLoggable(parent),
d(new QXmppClientPrivate(this))
{
d->stream = new QXmppOutgoingClient(this);
@@ -181,9 +182,8 @@ QXmppClient::QXmppClient(QObject *parent)
Q_ASSERT(check);
// logging
- check = connect(this, SIGNAL(logMessage(QXmppLogger::MessageType, QString)),
- d->stream, SIGNAL(logMessage(QXmppLogger::MessageType, QString)));
- Q_ASSERT(check);
+ d->logger = 0;
+ setLogger(QXmppLogger::getLogger());
// create managers
// TODO move manager references to d->extensions
@@ -193,8 +193,10 @@ QXmppClient::QXmppClient(QObject *parent)
d->archiveManager = new QXmppArchiveManager;
addExtension(d->archiveManager);
+#if 0
d->callManager = new QXmppCallManager(this);
addExtension(d->callManager);
+#endif
d->mucManager = new QXmppMucManager(this);
addExtension(d->mucManager);
@@ -246,12 +248,6 @@ bool QXmppClient::addExtension(QXmppClientExtension* extension)
extension->setParent(this);
extension->setClient(this);
- // Logging
- bool check = connect(extension, SIGNAL(logMessage(QXmppLogger::MessageType, QString)),
- d->stream, SIGNAL(logMessage(QXmppLogger::MessageType, QString)));
- Q_ASSERT(check);
- Q_UNUSED(check);
-
// Features
d->stream->addFeatures(extension->discoveryFeatures());
@@ -742,14 +738,20 @@ QXmppTransferManager& QXmppClient::transferManager()
QXmppLogger *QXmppClient::logger()
{
- return d->stream->logger();
+ return d->logger;
}
/// Sets the QXmppLogger associated with the current QXmppClient.
void QXmppClient::setLogger(QXmppLogger *logger)
{
- d->stream->setLogger(logger);
+ if (d->logger)
+ QObject::disconnect(this, SIGNAL(logMessage(QXmppLogger::MessageType, QString)),
+ d->logger, SLOT(log(QXmppLogger::MessageType, QString)));
+ d->logger = logger;
+ if (d->logger)
+ connect(this, SIGNAL(logMessage(QXmppLogger::MessageType, QString)),
+ d->logger, SLOT(log(QXmppLogger::MessageType, QString)));
}
/// At connection establishment, send initial presence.
diff --git a/src/QXmppClient.h b/src/QXmppClient.h
index 8b654963..1c2ce5e7 100644
--- a/src/QXmppClient.h
+++ b/src/QXmppClient.h
@@ -77,7 +77,7 @@ class QXmppVersionManager;
///
/// \ingroup Core
-class QXmppClient : public QObject
+class QXmppClient : public QXmppLoggable
{
Q_OBJECT
@@ -265,9 +265,6 @@ signals:
void discoveryIqReceived(const QXmppDiscoveryIq&);
/// \endcond
- /// This signal is emitted to send logging messages.
- void logMessage(QXmppLogger::MessageType type, const QString &msg);
-
public slots:
bool sendPacket(const QXmppPacket&);
void sendMessage(const QString& bareJid, const QString& message);
diff --git a/src/QXmppClientExtension.cpp b/src/QXmppClientExtension.cpp
index 6761442f..d0d23749 100644
--- a/src/QXmppClientExtension.cpp
+++ b/src/QXmppClientExtension.cpp
@@ -73,30 +73,3 @@ void QXmppClientExtension::setClient(QXmppClient *client)
d->client = client;
}
-/// 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
index e6326688..c2051787 100644
--- a/src/QXmppClientExtension.h
+++ b/src/QXmppClientExtension.h
@@ -37,7 +37,7 @@ class QXmppStream;
/// extensions.
///
-class QXmppClientExtension : public QObject
+class QXmppClientExtension : public QXmppLoggable
{
Q_OBJECT
@@ -48,18 +48,9 @@ public:
virtual QStringList discoveryFeatures() const;
virtual bool handleStanza(const QDomElement &stanza) = 0;
-signals:
- /// This signal is emitted to send logging messages.
- void logMessage(QXmppLogger::MessageType type, const QString &msg);
-
protected:
QXmppClient *client();
- // Logging helpers
- void debug(const QString&);
- void info(const QString&);
- void warning(const QString&);
-
private:
void setClient(QXmppClient *client);
QXmppClientExtensionPrivate * const d;
diff --git a/src/QXmppServer.cpp b/src/QXmppServer.cpp
index 212edd2d..579ad5b5 100644
--- a/src/QXmppServer.cpp
+++ b/src/QXmppServer.cpp
@@ -151,7 +151,7 @@ void QXmppServerPrivate::stopExtensions()
/// \param parent
QXmppServer::QXmppServer(QObject *parent)
- : QObject(parent),
+ : QXmppLoggable(parent),
d(new QXmppServerPrivate)
{
d->serverForClients = new QXmppSslServer(this);
@@ -238,7 +238,14 @@ QXmppLogger *QXmppServer::logger()
void QXmppServer::setLogger(QXmppLogger *logger)
{
+ if (d->logger)
+ QObject::disconnect(this, SIGNAL(logMessage(QXmppLogger::MessageType, QString)),
+ d->logger, SLOT(log(QXmppLogger::MessageType, QString)));
d->logger = logger;
+ d->logger = logger;
+ if (d->logger)
+ connect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)),
+ d->logger, SLOT(log(QXmppLogger::MessageType,QString)));
}
/// Returns the password checker used to verify client credentials.
@@ -362,7 +369,6 @@ QXmppOutgoingServer* QXmppServer::connectToDomain(const QString &domain)
QXmppOutgoingServer *stream = new QXmppOutgoingServer(d->domain, this);
stream->setObjectName("S2S-out-" + domain);
stream->setLocalStreamKey(generateStanzaHash().toAscii());
- stream->setLogger(d->logger);
bool check = connect(stream, SIGNAL(connected()),
this, SLOT(slotStreamConnected()));
@@ -575,7 +581,6 @@ void QXmppServer::slotClientConnection(QSslSocket *socket)
{
QXmppIncomingClient *stream = new QXmppIncomingClient(socket, d->domain, this);
socket->setParent(stream);
- stream->setLogger(d->logger);
stream->setPasswordChecker(d->passwordChecker);
bool check = connect(stream, SIGNAL(connected()),
@@ -640,7 +645,6 @@ void QXmppServer::slotServerConnection(QSslSocket *socket)
{
QXmppIncomingServer *stream = new QXmppIncomingServer(socket, d->domain, this);
socket->setParent(stream);
- stream->setLogger(d->logger);
bool check = connect(stream, SIGNAL(connected()),
this, SLOT(slotStreamConnected()));
diff --git a/src/QXmppServer.h b/src/QXmppServer.h
index fc3352bc..38f9efed 100644
--- a/src/QXmppServer.h
+++ b/src/QXmppServer.h
@@ -26,11 +26,12 @@
#include <QTcpServer>
+#include "QXmppLogger.h"
+
class QDomElement;
class QSslSocket;
class QXmppDialback;
-class QXmppLogger;
class QXmppOutgoingServer;
class QXmppPasswordChecker;
class QXmppServerExtension;
@@ -43,7 +44,7 @@ class QXmppStream;
///
/// \ingroup Core
-class QXmppServer : public QObject
+class QXmppServer : public QXmppLoggable
{
Q_OBJECT
diff --git a/src/QXmppServerExtension.cpp b/src/QXmppServerExtension.cpp
index 81454d70..48ae4bc9 100644
--- a/src/QXmppServerExtension.cpp
+++ b/src/QXmppServerExtension.cpp
@@ -61,7 +61,6 @@ QStringList QXmppServerExtension::discoveryItems() const
return QStringList();
}
-
/// Returns the extension's name.
///
@@ -145,35 +144,3 @@ void QXmppServerExtension::setServer(QXmppServer *server)
d->server = server;
}
-/// Logs a debugging message.
-///
-/// \param message
-
-void QXmppServerExtension::debug(const QString &message)
-{
- QXmppLogger *logger = server()->logger();
- if (logger)
- logger->log(QXmppLogger::DebugMessage, message);
-}
-
-/// Logs an informational message.
-///
-/// \param message
-
-void QXmppServerExtension::info(const QString &message)
-{
- QXmppLogger *logger = server()->logger();
- if (logger)
- logger->log(QXmppLogger::InformationMessage, message);
-}
-
-/// Logs a warning message.
-///
-/// \param message
-
-void QXmppServerExtension::warning(const QString &message)
-{
- QXmppLogger *logger = server()->logger();
- if (logger)
- logger->log(QXmppLogger::WarningMessage, message);
-}
diff --git a/src/QXmppServerExtension.h b/src/QXmppServerExtension.h
index 23adfa43..7cb319e7 100644
--- a/src/QXmppServerExtension.h
+++ b/src/QXmppServerExtension.h
@@ -24,9 +24,10 @@
#ifndef QXMPPSERVEREXTENSION_H
#define QXMPPSERVEREXTENSION_H
-#include <QObject>
#include <QVariant>
+#include "QXmppLogger.h"
+
class QDomElement;
class QStringList;
@@ -38,7 +39,7 @@ class QXmppStream;
/// extensions.
///
-class QXmppServerExtension : public QObject
+class QXmppServerExtension : public QXmppLoggable
{
Q_OBJECT
@@ -61,11 +62,6 @@ public:
protected:
QXmppServer *server();
- // Logging helpers
- void debug(const QString&);
- void info(const QString&);
- void warning(const QString&);
-
private:
void setServer(QXmppServer *server);
QXmppServerExtensionPrivate * const d;