aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppDiscoveryManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/QXmppDiscoveryManager.cpp')
-rw-r--r--src/client/QXmppDiscoveryManager.cpp67
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()