From 76892330fbf737cbdb09dc7bc4099418fc4cd1cc Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 25 May 2016 10:20:51 +0200 Subject: Convenience fetch overload --- examples/imapresource/imapserverproxy.cpp | 34 ++++++++++++++++--------------- examples/imapresource/imapserverproxy.h | 1 + 2 files changed, 19 insertions(+), 16 deletions(-) (limited to 'examples/imapresource') diff --git a/examples/imapresource/imapserverproxy.cpp b/examples/imapresource/imapserverproxy.cpp index dfb134c..58d2772 100644 --- a/examples/imapresource/imapserverproxy.cpp +++ b/examples/imapresource/imapserverproxy.cpp @@ -142,6 +142,23 @@ KAsync::Job ImapServerProxy::fetch(const KIMAP::ImapSet &set, KIMAP::Fetch return runJob(fetch); } +KAsync::Job ImapServerProxy::fetch(const KIMAP::ImapSet &set, KIMAP::FetchJob::FetchScope scope, const std::function &)> &callback) +{ + return fetch(set, scope, + [callback](const QString &mailbox, + const QMap &uids, + const QMap &sizes, + const QMap &attrs, + const QMap &flags, + const QMap &messages) { + QVector list; + for (const auto &id : uids.keys()) { + list << Message{uids.value(id), sizes.value(id), attrs.value(id), flags.value(id), messages.value(id)}; + } + callback(list); + }); +} + KAsync::Job> ImapServerProxy::fetchHeaders(const QString &mailbox) { auto list = QSharedPointer>::create(); @@ -230,22 +247,7 @@ KAsync::Future ImapServerProxy::fetchMessages(const Folder &folder, std::f KIMAP::ImapSet set; set.add(uidsToFetch.toVector()); - return fetch(set, scope, - [callback](const QString &mailbox, - const QMap &uids, - const QMap &sizes, - const QMap &attrs, - const QMap &flags, - const QMap &messages) { - Trace() << "Received " << uids.size() << " messages from " << mailbox; - Trace() << uids.size() << sizes.size() << attrs.size() << flags.size() << messages.size(); - - QVector list; - for (const auto &id : uids.keys()) { - list << Message{uids.value(id), sizes.value(id), attrs.value(id), flags.value(id), messages.value(id)}; - } - callback(list); - }); + return fetch(set, scope, callback); }); }); diff --git a/examples/imapresource/imapserverproxy.h b/examples/imapresource/imapserverproxy.h index 7000c67..a5a1296 100644 --- a/examples/imapresource/imapserverproxy.h +++ b/examples/imapresource/imapserverproxy.h @@ -80,6 +80,7 @@ public: const QMap &)> FetchCallback; KAsync::Job fetch(const KIMAP::ImapSet &set, KIMAP::FetchJob::FetchScope scope, FetchCallback callback); + KAsync::Job fetch(const KIMAP::ImapSet &set, KIMAP::FetchJob::FetchScope scope, const std::function &)> &callback); KAsync::Job list(KIMAP::ListJob::Option option, const std::function &mailboxes,const QList > &flags)> &callback); //Composed calls that do login etc. -- cgit v1.2.3