aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/QXmppDiscoveryManager.cpp44
-rw-r--r--src/QXmppDiscoveryManager.h13
2 files changed, 54 insertions, 3 deletions
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