MCPcopy Create free account
hub / github.com/MailCore/mailcore2 / fetchMessages

Method fetchMessages

src/core/imap/MCIMAPSession.cpp:2401–2678  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2399}
2400
2401IMAPSyncResult * IMAPSession::fetchMessages(String * folder, IMAPMessagesRequestKind requestKind, bool fetchByUID,
2402 struct mailimap_set * imapset, IndexSet * uidsFilter, IndexSet * numbersFilter,
2403 uint64_t modseq, HashMap * mapping,
2404 IMAPProgressCallback * progressCallback, Array * extraHeaders, ErrorCode * pError)
2405{
2406 struct mailimap_fetch_type * fetch_type;
2407 clist * fetch_result;
2408 struct mailimap_qresync_vanished * vanished;
2409 struct mailimap_fetch_att * fetch_att;
2410 int r;
2411 bool needsHeader;
2412 bool needsBody;
2413 bool needsFlags;
2414 bool needsGmailLabels;
2415 bool needsGmailMessageID;
2416 bool needsGmailThreadID;
2417 Array * messages;
2418 IndexSet * vanishedMessages;
2419
2420 selectIfNeeded(folder, pError);
2421 if (* pError != ErrorNone)
2422 return NULL;
2423
2424 if (mNeedsMboxMailWorkaround && ((requestKind & IMAPMessagesRequestKindHeaders) != 0)) {
2425 requestKind = (IMAPMessagesRequestKind) (requestKind & ~IMAPMessagesRequestKindHeaders);
2426 requestKind = (IMAPMessagesRequestKind) (requestKind | IMAPMessagesRequestKindFullHeaders);
2427 }
2428 if (extraHeaders != NULL) {
2429 requestKind = (IMAPMessagesRequestKind) (requestKind | IMAPMessagesRequestKindExtraHeaders);
2430 }
2431
2432 if ((requestKind & IMAPMessagesRequestKindHeaders) != 0) {
2433 mProgressItemsCount = 0;
2434 mProgressCallback = progressCallback;
2435 }
2436
2437 messages = Array::array();
2438
2439 needsHeader = false;
2440 needsBody = false;
2441 needsFlags = false;
2442 needsGmailLabels = false;
2443 needsGmailMessageID = false;
2444 needsGmailThreadID = false;
2445 clist * hdrlist = clist_new();
2446
2447 fetch_type = mailimap_fetch_type_new_fetch_att_list_empty();
2448 fetch_att = mailimap_fetch_att_new_uid();
2449 mailimap_fetch_type_new_fetch_att_list_add(fetch_type, fetch_att);
2450 if ((requestKind & IMAPMessagesRequestKindFlags) != 0) {
2451 MCLog("request flags");
2452 fetch_att = mailimap_fetch_att_new_flags();
2453 mailimap_fetch_type_new_fetch_att_list_add(fetch_type, fetch_att);
2454 needsFlags = true;
2455 }
2456 if ((requestKind & IMAPMessagesRequestKindGmailLabels) != 0) {
2457 MCLog("request flags");
2458 fetch_att = mailimap_fetch_att_new_xgmlabels();

Callers

nothing calls this directly

Calls 9

indexSetFromSetFunction · 0.85
hasErrorFunction · 0.85
objectAtIndexMethod · 0.80
UTF8CharactersMethod · 0.80
setVanishedMessagesMethod · 0.80
countMethod · 0.45
autoreleaseMethod · 0.45

Tested by

no test coverage detected