From 36b1b2ca293df79e289d36058fbd6e40b6f0079a Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Thu, 16 Sep 2010 09:15:49 +0000 Subject: functions for setting client's identity --- src/QXmppDiscoveryManager.cpp | 44 ++++++++++++++++++++++++++++++++++++++++--- src/QXmppDiscoveryManager.h | 13 +++++++++++++ 2 files changed, 54 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/QXmppDiscoveryManager.cpp b/src/QXmppDiscoveryManager.cpp index 79d1fd7f..5e938a9a 100644 --- a/src/QXmppDiscoveryManager.cpp +++ b/src/QXmppDiscoveryManager.cpp @@ -31,6 +31,13 @@ #include "QXmppDiscoveryIq.h" #include "QXmppStream.h" +QXmppDiscoveryManager::QXmppDiscoveryManager() : QXmppClientExtension(), + m_identityCategory("client"), + m_identityType("pc"), + m_identityName(QString("%1 %2").arg(qApp->applicationName(), qApp->applicationVersion())) +{ +} + bool QXmppDiscoveryManager::handleStanza(QXmppStream *stream, const QDomElement &element) { if (element.tagName() == "iq" && QXmppDiscoveryIq::isDiscoveryIq(element)) @@ -129,11 +136,42 @@ QXmppDiscoveryIq QXmppDiscoveryManager::capabilities() identity.setType("rpc"); identities.append(identity); - identity.setCategory("client"); - identity.setType("pc"); - identity.setName(QString("%1 %2").arg(qApp->applicationName(), qApp->applicationVersion())); + identity.setCategory(identityCategory()); + identity.setType(identityType()); + identity.setName(identityName()); identities.append(identity); iq.setIdentities(identities); return iq; } + +/// http://xmpp.org/registrar/disco-categories.html#client +void QXmppDiscoveryManager::setIdentityCategory(const QString& category) +{ + m_identityCategory = category; +} + +void QXmppDiscoveryManager::setIdentityType(const QString& type) +{ + m_identityType = type; +} + +void QXmppDiscoveryManager::setIdentityName(const QString& name) +{ + m_identityName = name; +} + +QString QXmppDiscoveryManager::identityCategory() +{ + return m_identityCategory; +} + +QString QXmppDiscoveryManager::identityType() +{ + return m_identityType; +} + +QString QXmppDiscoveryManager::identityName() +{ + return m_identityName; +} diff --git a/src/QXmppDiscoveryManager.h b/src/QXmppDiscoveryManager.h index 2cad8ef1..269a9c20 100644 --- a/src/QXmppDiscoveryManager.h +++ b/src/QXmppDiscoveryManager.h @@ -36,9 +36,19 @@ class QXmppDiscoveryManager : public QXmppClientExtension Q_OBJECT public: + QXmppDiscoveryManager(); + void requestInfo(const QString& jid, const QString& node = ""); void requestItems(const QString& jid, const QString& node = ""); + /// http://xmpp.org/registrar/disco-categories.html#client + void setIdentityCategory(const QString&); + void setIdentityType(const QString&); + void setIdentityName(const QString&); + QString identityCategory(); + QString identityType(); + QString identityName(); + /// \cond QStringList discoveryFeatures() const; bool handleStanza(QXmppStream *stream, const QDomElement &element); @@ -50,6 +60,9 @@ signals: void itemsReceived(const QXmppDiscoveryIq&); private: + QString m_identityCategory; + QString m_identityType; + QString m_identityName; }; #endif // QXMPPDISCOVERYMANAGER_H -- cgit v1.2.3