diff options
Diffstat (limited to 'src/client/QXmppEntityTimeManager.cpp')
| -rw-r--r-- | src/client/QXmppEntityTimeManager.cpp | 66 |
1 files changed, 41 insertions, 25 deletions
diff --git a/src/client/QXmppEntityTimeManager.cpp b/src/client/QXmppEntityTimeManager.cpp index 68d31bdd..b7916ed6 100644 --- a/src/client/QXmppEntityTimeManager.cpp +++ b/src/client/QXmppEntityTimeManager.cpp @@ -1,41 +1,37 @@ -/* - * Copyright (C) 2008-2021 The QXmpp developers - * - * Author: - * Manjeet Dahiya - * - * Source: - * https://github.com/qxmpp-project/qxmpp - * - * This file is a part of QXmpp library. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - */ +// SPDX-FileCopyrightText: 2010 Manjeet Dahiya <manjeetdahiya@gmail.com> +// +// SPDX-License-Identifier: LGPL-2.1-or-later #include "QXmppEntityTimeManager.h" #include "QXmppClient.h" #include "QXmppConstants_p.h" #include "QXmppEntityTimeIq.h" +#include "QXmppFutureUtils_p.h" #include "QXmppUtils.h" #include <QDateTime> #include <QDomElement> +using namespace QXmpp::Private; + +/// +/// \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 +42,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<EntityTimeResult> +{ + QXmppEntityTimeIq iq; + iq.setType(QXmppIq::Get); + iq.setTo(jid); + + return chainIq<EntityTimeResult>(client()->sendIq(std::move(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; |
