From 9c9377f609d87578051ab6521544d1f3d80b8011 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Thu, 5 Nov 2020 17:10:59 +0100 Subject: EntityTimeManager: Add QFuture-based request --- src/client/QXmppEntityTimeManager.cpp | 39 ++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) (limited to 'src/client/QXmppEntityTimeManager.cpp') diff --git a/src/client/QXmppEntityTimeManager.cpp b/src/client/QXmppEntityTimeManager.cpp index 68d31bdd..15ede78c 100644 --- a/src/client/QXmppEntityTimeManager.cpp +++ b/src/client/QXmppEntityTimeManager.cpp @@ -26,16 +26,29 @@ #include "QXmppClient.h" #include "QXmppConstants_p.h" #include "QXmppEntityTimeIq.h" +#include "QXmppGlobal_p.h" #include "QXmppUtils.h" #include #include +/// +/// \typedef QXmppEntityTimeManager::EntityTimeResult +/// +/// Contains the requested entity time or the returned error in case of a +/// failure. +/// +/// \since QXmpp 1.5 +/// + +/// /// Request the time from an XMPP entity. /// +/// The result is emitted on the timeReceived() signal. +/// /// \param jid - -QString QXmppEntityTimeManager::requestTime(const QString& jid) +/// +QString QXmppEntityTimeManager::requestTime(const QString &jid) { QXmppEntityTimeIq request; request.setType(QXmppIq::Get); @@ -46,13 +59,33 @@ QString QXmppEntityTimeManager::requestTime(const QString& jid) return QString(); } +/// +/// Requests the time from an XMPP entity and reports it via a QFuture. +/// +/// The timeReceived() signal is not emitted. +/// +/// \param jid +/// +/// \warning THIS API IS NOT FINALIZED YET! +/// +/// \since QXmpp 1.5 +/// +auto QXmppEntityTimeManager::requestEntityTime(const QString &jid) -> QFuture +{ + QXmppEntityTimeIq iq; + iq.setType(QXmppIq::Get); + iq.setTo(jid); + + return chainIq(client()->sendIq(iq), this); +} + /// \cond QStringList QXmppEntityTimeManager::discoveryFeatures() const { return QStringList() << ns_entity_time; } -bool QXmppEntityTimeManager::handleStanza(const QDomElement& element) +bool QXmppEntityTimeManager::handleStanza(const QDomElement &element) { if (element.tagName() == "iq" && QXmppEntityTimeIq::isEntityTimeIq(element)) { QXmppEntityTimeIq entityTime; -- cgit v1.2.3