aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-09-10 13:41:58 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-09-10 13:41:58 +0200
commit973a7a6a0b905f75e10955dca3c6af37f93e853a (patch)
tree099129c0a319b5d897391b5e6de88a233e5565b2 /src/server
parentfcf89b7834cd253eb5993f03d891d0b6ab1a9953 (diff)
more plumbing for stat counters
Diffstat (limited to 'src/server')
-rw-r--r--src/server/QXmppServer.cpp26
-rw-r--r--src/server/QXmppServer.h4
2 files changed, 22 insertions, 8 deletions
diff --git a/src/server/QXmppServer.cpp b/src/server/QXmppServer.cpp
index b329053d..0027aa6f 100644
--- a/src/server/QXmppServer.cpp
+++ b/src/server/QXmppServer.cpp
@@ -391,14 +391,24 @@ 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)));
+ if (logger != d->logger) {
+ if (d->logger) {
+ disconnect(this, SIGNAL(incrementCounter(QString)),
+ d->logger, SLOT(incrementCounter(QString)));
+ disconnect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)),
+ d->logger, SLOT(log(QXmppLogger::MessageType,QString)));
+ }
+
+ d->logger = logger;
+ if (d->logger) {
+ connect(this, SIGNAL(incrementCounter(QString)),
+ d->logger, SLOT(incrementCounter(QString)));
+ connect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)),
+ d->logger, SLOT(log(QXmppLogger::MessageType,QString)));
+ }
+
+ emit loggerChanged(d->logger);
+ }
}
/// Returns the password checker used to verify client credentials.
diff --git a/src/server/QXmppServer.h b/src/server/QXmppServer.h
index 7f546d52..f7aca3b1 100644
--- a/src/server/QXmppServer.h
+++ b/src/server/QXmppServer.h
@@ -59,6 +59,7 @@ class QXmppStream;
class QXMPP_EXPORT QXmppServer : public QXmppLoggable
{
Q_OBJECT
+ Q_PROPERTY(QXmppLogger* logger READ logger WRITE setLogger NOTIFY loggerChanged)
public:
QXmppServer(QObject *parent = 0);
@@ -98,6 +99,9 @@ signals:
/// This signal is emitted when a client has disconnected.
void clientDisconnected(const QString &jid);
+ /// This signal is emitted when the logger changes.
+ void loggerChanged(QXmppLogger *logger);
+
public slots:
void handleElement(const QDomElement &element);