diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/QXmppDiscoveryManager.cpp | 44 | ||||
| -rw-r--r-- | src/QXmppDiscoveryManager.h | 13 |
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
|
