diff options
Diffstat (limited to 'src/client/QXmppDiscoveryManager.cpp')
| -rw-r--r-- | src/client/QXmppDiscoveryManager.cpp | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/client/QXmppDiscoveryManager.cpp b/src/client/QXmppDiscoveryManager.cpp index 0cb34831..6f7d3654 100644 --- a/src/client/QXmppDiscoveryManager.cpp +++ b/src/client/QXmppDiscoveryManager.cpp @@ -29,6 +29,7 @@ #include "QXmppDataForm.h" #include "QXmppDiscoveryIq.h" #include "QXmppGlobal.h" +#include "QXmppGlobal_p.h" #include "QXmppStream.h" #include <QCoreApplication> @@ -44,6 +45,24 @@ public: QXmppDataForm clientInfoForm; }; +/// +/// \typedef QXmppDiscoveryManager::InfoResult +/// +/// Contains the discovery information result in the form of an QXmppDiscoveryIq +/// or (in case the request did not succeed) a QXmppStanza::Error. +/// +/// \since QXmpp 1.5 +/// + +/// +/// \typedef QXmppDiscoveryManager::ItemsResult +/// +/// Contains a list of service discovery items or (in case the request did not +/// succeed) a QXmppStanza::Error. +/// +/// \since QXmpp 1.5 +/// + QXmppDiscoveryManager::QXmppDiscoveryManager() : d(new QXmppDiscoveryManagerPrivate) { @@ -104,6 +123,54 @@ QString QXmppDiscoveryManager::requestItems(const QString& jid, const QString& n } /// +/// Requests information from the specified XMPP entity. +/// +/// \param jid The target entity's JID. +/// \param node The target node (optional). +/// +/// \warning THIS API IS NOT FINALIZED YET! +/// +/// \since QXmpp 1.5 +/// +QFuture<QXmppDiscoveryManager::InfoResult> QXmppDiscoveryManager::requestDiscoInfo(const QString &jid, const QString &node) +{ + QXmppDiscoveryIq request; + request.setType(QXmppIq::Get); + request.setQueryType(QXmppDiscoveryIq::InfoQuery); + request.setTo(jid); + if (!node.isEmpty()) { + request.setQueryNode(node); + } + + return chainIq<InfoResult, QXmppDiscoveryIq>(client()->sendIq(request), this); +} + +/// +/// Requests items from the specified XMPP entity. +/// +/// \param jid The target entity's JID. +/// \param node The target node (optional). +/// +/// \warning THIS API IS NOT FINALIZED YET! +/// +/// \since QXmpp 1.5 +/// +QFuture<QXmppDiscoveryManager::ItemsResult> QXmppDiscoveryManager::requestDiscoItems(const QString &jid, const QString &node) +{ + QXmppDiscoveryIq request; + request.setType(QXmppIq::Get); + request.setQueryType(QXmppDiscoveryIq::ItemsQuery); + request.setTo(jid); + if (!node.isEmpty()) { + request.setQueryNode(node); + } + + return chainIq<ItemsResult, QXmppDiscoveryIq>(client()->sendIq(request), this, [](QXmppDiscoveryIq &&iq) { + return iq.items(); + }); +} + +/// /// Returns the client's full capabilities. /// QXmppDiscoveryIq QXmppDiscoveryManager::capabilities() |
