diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-01-10 11:28:53 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-01-10 11:28:53 +0100 |
commit | 8e84c8a78b7e308cc2b09241af649851036d11de (patch) | |
tree | e4b8b964aa7400e9f1d88b04cadcabb423e039dd /examples/imapresource/imapserverproxy.h | |
parent | 5064e5c9a705365524321e01686e73ac1bdf28a0 (diff) | |
download | sink-8e84c8a78b7e308cc2b09241af649851036d11de.tar.gz sink-8e84c8a78b7e308cc2b09241af649851036d11de.zip |
Improved imap mail sync algorithm.
* when requesting individual mails we sync the full content
* when requesting individual folders we get 2 weeks of full content +
headers for everything else.
* when requesting a sync for all folders we only get 2 weeks of full
content.
Getting the headers for 50k messages takes about 180s on my system with
kolabnow (network being the bottleneck), so that's managable. Getting
the full content would take in the range of hours.
This way we have something to show, and a way to request more data,
without making the system overly complex yet.
Certainly not the final solution, but a good start.
Diffstat (limited to 'examples/imapresource/imapserverproxy.h')
-rw-r--r-- | examples/imapresource/imapserverproxy.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/examples/imapresource/imapserverproxy.h b/examples/imapresource/imapserverproxy.h index fa2d022..140c5b2 100644 --- a/examples/imapresource/imapserverproxy.h +++ b/examples/imapresource/imapserverproxy.h | |||
@@ -163,7 +163,7 @@ public: | |||
163 | KAsync::Job<void> fetchFolders(std::function<void(const Folder &)> callback); | 163 | KAsync::Job<void> fetchFolders(std::function<void(const Folder &)> callback); |
164 | KAsync::Job<void> fetchMessages(const Folder &folder, std::function<void(const Message &)> callback, std::function<void(int, int)> progress = std::function<void(int, int)>()); | 164 | KAsync::Job<void> fetchMessages(const Folder &folder, std::function<void(const Message &)> callback, std::function<void(int, int)> progress = std::function<void(int, int)>()); |
165 | KAsync::Job<void> fetchMessages(const Folder &folder, qint64 uidNext, std::function<void(const Message &)> callback, std::function<void(int, int)> progress = std::function<void(int, int)>()); | 165 | KAsync::Job<void> fetchMessages(const Folder &folder, qint64 uidNext, std::function<void(const Message &)> callback, std::function<void(int, int)> progress = std::function<void(int, int)>()); |
166 | KAsync::Job<void> fetchMessages(const Folder &folder, const QVector<qint64> &uidsToFetch, std::function<void(const Message &)> callback, std::function<void(int, int)> progress); | 166 | KAsync::Job<void> fetchMessages(const Folder &folder, const QVector<qint64> &uidsToFetch, bool headersOnly, std::function<void(const Message &)> callback, std::function<void(int, int)> progress); |
167 | KAsync::Job<SelectResult> fetchFlags(const Folder &folder, const KIMAP2::ImapSet &set, qint64 changedsince, std::function<void(const Message &)> callback); | 167 | KAsync::Job<SelectResult> fetchFlags(const Folder &folder, const KIMAP2::ImapSet &set, qint64 changedsince, std::function<void(const Message &)> callback); |
168 | KAsync::Job<QVector<qint64>> fetchUids(const Folder &folder); | 168 | KAsync::Job<QVector<qint64>> fetchUids(const Folder &folder); |
169 | 169 | ||