summaryrefslogtreecommitdiffstats
path: root/examples/imapresource
diff options
context:
space:
mode:
Diffstat (limited to 'examples/imapresource')
-rw-r--r--examples/imapresource/imapresource.cpp3
-rw-r--r--examples/imapresource/imapserverproxy.cpp13
-rw-r--r--examples/imapresource/imapserverproxy.h2
3 files changed, 11 insertions, 7 deletions
diff --git a/examples/imapresource/imapresource.cpp b/examples/imapresource/imapresource.cpp
index 0b1437a..8422b49 100644
--- a/examples/imapresource/imapresource.cpp
+++ b/examples/imapresource/imapresource.cpp
@@ -236,6 +236,9 @@ public:
236 236
237 modify(ENTITY_TYPE_MAIL, remoteId, mail); 237 modify(ENTITY_TYPE_MAIL, remoteId, mail);
238 } 238 }
239 })
240 .syncThen<void, SelectResult>([this, folder](const SelectResult &selectResult) {
241 syncStore().writeValue(folder.normalizedPath().toUtf8() + "changedsince", QByteArray::number(selectResult.highestModSequence));
239 }); 242 });
240 }) 243 })
241 .then<void>([=]() { 244 .then<void>([=]() {
diff --git a/examples/imapresource/imapserverproxy.cpp b/examples/imapresource/imapserverproxy.cpp
index 4ce413a..0f3524f 100644
--- a/examples/imapresource/imapserverproxy.cpp
+++ b/examples/imapresource/imapserverproxy.cpp
@@ -100,7 +100,7 @@ ImapServerProxy::ImapServerProxy(const QString &serverUrl, int port) : mSession(
100 if (Sink::Test::testModeEnabled()) { 100 if (Sink::Test::testModeEnabled()) {
101 mSession->setTimeout(1); 101 mSession->setTimeout(1);
102 } else { 102 } else {
103 mSession->setTimeout(10); 103 mSession->setTimeout(20);
104 } 104 }
105} 105}
106 106
@@ -416,15 +416,15 @@ QString ImapServerProxy::mailboxFromFolder(const Folder &folder) const
416 return folder.pathParts.join(mPersonalNamespaceSeparator); 416 return folder.pathParts.join(mPersonalNamespaceSeparator);
417} 417}
418 418
419KAsync::Job<void> ImapServerProxy::fetchFlags(const Folder &folder, qint64 changedsince, std::function<void(const QVector<Message> &)> callback) 419KAsync::Job<SelectResult> ImapServerProxy::fetchFlags(const Folder &folder, qint64 changedsince, std::function<void(const QVector<Message> &)> callback)
420{ 420{
421 SinkTrace() << "Fetching flags " << folder.normalizedPath(); 421 SinkTrace() << "Fetching flags " << folder.normalizedPath();
422 return select(mailboxFromFolder(folder)).then<void, SelectResult>([=](const SelectResult &selectResult) -> KAsync::Job<void> { 422 return select(mailboxFromFolder(folder)).then<SelectResult, SelectResult>([=](const SelectResult &selectResult) -> KAsync::Job<SelectResult> {
423 SinkTrace() << "Modeseq " << folder.normalizedPath() << selectResult.highestModSequence << changedsince; 423 SinkTrace() << "Modeseq " << folder.normalizedPath() << selectResult.highestModSequence << changedsince;
424 424
425 if (selectResult.highestModSequence == static_cast<quint64>(changedsince)) { 425 if (selectResult.highestModSequence == static_cast<quint64>(changedsince)) {
426 SinkTrace()<< folder.normalizedPath() << "Changedsince didn't change, nothing to do."; 426 SinkTrace()<< folder.normalizedPath() << "Changedsince didn't change, nothing to do.";
427 return KAsync::null<void>(); 427 return KAsync::value<SelectResult>(selectResult);
428 } 428 }
429 429
430 SinkTrace() << "Fetching flags " << folder.normalizedPath() << selectResult.highestModSequence << changedsince; 430 SinkTrace() << "Fetching flags " << folder.normalizedPath() << selectResult.highestModSequence << changedsince;
@@ -433,7 +433,9 @@ KAsync::Job<void> ImapServerProxy::fetchFlags(const Folder &folder, qint64 chang
433 scope.mode = KIMAP2::FetchJob::FetchScope::Flags; 433 scope.mode = KIMAP2::FetchJob::FetchScope::Flags;
434 scope.changedSince = changedsince; 434 scope.changedSince = changedsince;
435 435
436 return fetch(KIMAP2::ImapSet(1, 0), scope, callback); 436 return fetch(KIMAP2::ImapSet(1, 0), scope, callback).syncThen<SelectResult>([selectResult] {
437 return selectResult;
438 });
437 }); 439 });
438} 440}
439 441
@@ -443,7 +445,6 @@ KAsync::Job<void> ImapServerProxy::fetchMessages(const Folder &folder, qint64 ui
443 time->start(); 445 time->start();
444 Q_ASSERT(!mPersonalNamespaceSeparator.isNull()); 446 Q_ASSERT(!mPersonalNamespaceSeparator.isNull());
445 return select(mailboxFromFolder(folder)).then<void, SelectResult>([this, callback, folder, time, progress, uidNext](const SelectResult &selectResult) -> KAsync::Job<void> { 447 return select(mailboxFromFolder(folder)).then<void, SelectResult>([this, callback, folder, time, progress, uidNext](const SelectResult &selectResult) -> KAsync::Job<void> {
446
447 SinkTrace() << "UIDNEXT " << folder.normalizedPath() << selectResult.uidNext << uidNext; 448 SinkTrace() << "UIDNEXT " << folder.normalizedPath() << selectResult.uidNext << uidNext;
448 if (selectResult.uidNext == (uidNext + 1)) { 449 if (selectResult.uidNext == (uidNext + 1)) {
449 SinkTrace()<< folder.normalizedPath() << "Uidnext didn't change, nothing to do."; 450 SinkTrace()<< folder.normalizedPath() << "Uidnext didn't change, nothing to do.";
diff --git a/examples/imapresource/imapserverproxy.h b/examples/imapresource/imapserverproxy.h
index 83efc38..ff87d47 100644
--- a/examples/imapresource/imapserverproxy.h
+++ b/examples/imapresource/imapserverproxy.h
@@ -138,7 +138,7 @@ public:
138 KAsync::Job<void> fetchFolders(std::function<void(const QVector<Folder> &)> callback); 138 KAsync::Job<void> fetchFolders(std::function<void(const QVector<Folder> &)> callback);
139 KAsync::Job<void> fetchMessages(const Folder &folder, std::function<void(const QVector<Message> &)> callback, std::function<void(int, int)> progress = std::function<void(int, int)>()); 139 KAsync::Job<void> fetchMessages(const Folder &folder, std::function<void(const QVector<Message> &)> callback, std::function<void(int, int)> progress = std::function<void(int, int)>());
140 KAsync::Job<void> fetchMessages(const Folder &folder, qint64 uidNext, std::function<void(const QVector<Message> &)> callback, std::function<void(int, int)> progress = std::function<void(int, int)>()); 140 KAsync::Job<void> fetchMessages(const Folder &folder, qint64 uidNext, std::function<void(const QVector<Message> &)> callback, std::function<void(int, int)> progress = std::function<void(int, int)>());
141 KAsync::Job<void> fetchFlags(const Folder &folder, qint64 changedsince, std::function<void(const QVector<Message> &)> callback); 141 KAsync::Job<SelectResult> fetchFlags(const Folder &folder, qint64 changedsince, std::function<void(const QVector<Message> &)> callback);
142 KAsync::Job<QVector<qint64>> fetchUids(const Folder &folder); 142 KAsync::Job<QVector<qint64>> fetchUids(const Folder &folder);
143 143
144private: 144private: