diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-10 14:58:49 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-10 14:58:49 +0200 |
| commit | ca58ee37157f4ae9635ccdf3ab662c31ba0e6904 (patch) | |
| tree | fe4201a74d7f445c1a8cdd0c1ac4a69343094646 /src | |
| parent | 858c95cd64794ae78bf3f39805b933c6289bd84d (diff) | |
| download | qxmpp-ca58ee37157f4ae9635ccdf3ab662c31ba0e6904.tar.gz | |
add counters
Diffstat (limited to 'src')
| -rw-r--r-- | src/base/QXmppLogger.cpp | 14 | ||||
| -rw-r--r-- | src/base/QXmppLogger.h | 5 | ||||
| -rw-r--r-- | src/client/QXmppClient.cpp | 4 | ||||
| -rw-r--r-- | src/server/QXmppServer.cpp | 18 |
4 files changed, 39 insertions, 2 deletions
diff --git a/src/base/QXmppLogger.cpp b/src/base/QXmppLogger.cpp index 2bce8690..34ff2f2f 100644 --- a/src/base/QXmppLogger.cpp +++ b/src/base/QXmppLogger.cpp @@ -66,6 +66,8 @@ static void relaySignals(QXmppLoggable *from, QXmppLoggable *to) to, SIGNAL(incrementCounter(QString))); QObject::connect(from, SIGNAL(logMessage(QXmppLogger::MessageType,QString)), to, SIGNAL(logMessage(QXmppLogger::MessageType,QString))); + QObject::connect(from, SIGNAL(setGauge(QString,double)), + to, SIGNAL(setGauge(QString,double))); } /// Constructs a new QXmppLoggable. @@ -95,6 +97,8 @@ void QXmppLoggable::childEvent(QChildEvent *event) this, SIGNAL(incrementCounter(QString))); disconnect(child, SIGNAL(logMessage(QXmppLogger::MessageType,QString)), this, SIGNAL(logMessage(QXmppLogger::MessageType,QString))); + disconnect(child, SIGNAL(setGauge(QString,double)), + this, SIGNAL(setGauge(QString,double))); } } /// \endcond @@ -228,6 +232,16 @@ void QXmppLogger::log(QXmppLogger::MessageType type, const QString& text) } } +/// Sets the given \a gauge to \a value. +/// +/// NOTE: the base implementation does nothing. + +void QXmppLogger::setGauge(const QString &gauge, double value) +{ + Q_UNUSED(gauge); + Q_UNUSED(value); +} + /// Returns the path to which logging messages should be written. /// /// \sa loggingType() diff --git a/src/base/QXmppLogger.h b/src/base/QXmppLogger.h index 7178d960..b6181b96 100644 --- a/src/base/QXmppLogger.h +++ b/src/base/QXmppLogger.h @@ -90,6 +90,8 @@ public: public slots: virtual void incrementCounter(const QString &counter); + virtual void setGauge(const QString &gauge, double value); + void log(QXmppLogger::MessageType type, const QString& text); void reopen(); @@ -167,6 +169,9 @@ signals: /// Increment the given \a counter. void incrementCounter(const QString &counter); + /// Sets the given \a gauge to \a value. + void setGauge(const QString &gauge, double value); + /// This signal is emitted to send logging messages. void logMessage(QXmppLogger::MessageType type, const QString &msg); }; diff --git a/src/client/QXmppClient.cpp b/src/client/QXmppClient.cpp index 796cb419..98819c3d 100644 --- a/src/client/QXmppClient.cpp +++ b/src/client/QXmppClient.cpp @@ -579,6 +579,8 @@ void QXmppClient::setLogger(QXmppLogger *logger) d->logger, SLOT(incrementCounter(QString))); disconnect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)), d->logger, SLOT(log(QXmppLogger::MessageType,QString))); + disconnect(this, SIGNAL(setGauge(QString,double)), + d->logger, SLOT(setGauge(QString,double))); } d->logger = logger; @@ -587,6 +589,8 @@ void QXmppClient::setLogger(QXmppLogger *logger) d->logger, SLOT(incrementCounter(QString))); connect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)), d->logger, SLOT(log(QXmppLogger::MessageType,QString))); + connect(this, SIGNAL(setGauge(QString,double)), + d->logger, SLOT(setGauge(QString,double))); } emit loggerChanged(d->logger); diff --git a/src/server/QXmppServer.cpp b/src/server/QXmppServer.cpp index 0027aa6f..8c9b6fb0 100644 --- a/src/server/QXmppServer.cpp +++ b/src/server/QXmppServer.cpp @@ -172,6 +172,7 @@ bool QXmppServerPrivate::routeData(const QString &to, const QByteArray &data) // add stream outgoingServers.insert(conn); + q->setGauge("outgoing-server.count", outgoingServers.size()); // queue data and connect to remote server QMetaObject::invokeMethod(conn, "queueData", Q_ARG(QByteArray, data)); @@ -397,6 +398,8 @@ void QXmppServer::setLogger(QXmppLogger *logger) d->logger, SLOT(incrementCounter(QString))); disconnect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)), d->logger, SLOT(log(QXmppLogger::MessageType,QString))); + disconnect(this, SIGNAL(setGauge(QString,double)), + d->logger, SLOT(setGauge(QString,double))); } d->logger = logger; @@ -405,6 +408,8 @@ void QXmppServer::setLogger(QXmppLogger *logger) d->logger, SLOT(incrementCounter(QString))); connect(this, SIGNAL(logMessage(QXmppLogger::MessageType,QString)), d->logger, SLOT(log(QXmppLogger::MessageType,QString))); + connect(this, SIGNAL(setGauge(QString,double)), + d->logger, SLOT(setGauge(QString,double))); } emit loggerChanged(d->logger); @@ -610,6 +615,7 @@ void QXmppServer::addIncomingClient(QXmppIncomingClient *stream) // add stream d->incomingClients.insert(stream); + setGauge("incoming-client.count", d->incomingClients.size()); } /// Handle a new incoming TCP connection from a client. @@ -683,6 +689,9 @@ void QXmppServer::_q_clientDisconnected() // emit signal if (!jid.isEmpty()) emit clientDisconnected(jid); + + // update counter + setGauge("incoming-client.count", d->incomingClients.size()); } } @@ -727,8 +736,10 @@ void QXmppServer::_q_outgoingServerDisconnected() if (!outgoing) return; - if (d->outgoingServers.remove(outgoing)) + if (d->outgoingServers.remove(outgoing)) { outgoing->deleteLater(); + setGauge("outgoing-server.count", d->outgoingServers.size()); + } } /// Handle a new incoming TCP connection from a server. @@ -763,6 +774,7 @@ void QXmppServer::_q_serverConnection(QSslSocket *socket) // add stream d->incomingServers.insert(stream); + setGauge("incoming-server.count", d->incomingServers.size()); } /// Handle a stream disconnection for an incoming server. @@ -773,8 +785,10 @@ void QXmppServer::_q_serverDisconnected() if (!incoming) return; - if (d->incomingServers.remove(incoming)) + if (d->incomingServers.remove(incoming)) { incoming->deleteLater(); + setGauge("incoming-server.count", d->incomingServers.size()); + } } class QXmppSslServerPrivate |
