diff options
Diffstat (limited to '')
-rw-r--r-- | src/imap/imap-sync-private.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/imap/imap-sync-private.h b/src/imap/imap-sync-private.h new file mode 100644 index 0000000..b0b1715 --- /dev/null +++ b/src/imap/imap-sync-private.h @@ -0,0 +1,47 @@ +#ifndef IMAP_SYNC_PRIVATE_H +#define IMAP_SYNC_PRIVATE_H + +#include "imap-sync.h" + +struct imap_client_sync_context { + /* if multiple commands are in progress, we may need to wait for them + to finish before syncing mailbox. */ + unsigned int counter; + enum mailbox_sync_flags flags; + enum imap_sync_flags imap_flags; + const char *tagline; +}; + +struct imap_sync_context { + struct client *client; + struct mailbox *box; + enum imap_sync_flags imap_flags; + + struct mailbox_transaction_context *t; + struct mailbox_sync_context *sync_ctx; + struct mail *mail; + + struct mailbox_status status; + struct mailbox_sync_status sync_status; + + struct mailbox_sync_rec sync_rec; + ARRAY_TYPE(keywords) tmp_keywords; + ARRAY_TYPE(seq_range) expunges; + uint32_t seq; + + ARRAY_TYPE(seq_range) search_adds, search_removes; + unsigned int search_update_idx; + + unsigned int messages_count; + + /* Module-specific contexts. */ + ARRAY(union imap_module_context *) module_contexts; + + bool failed:1; + bool finished:1; + bool no_newmail:1; + bool have_new_mails:1; + bool search_update_notifying:1; +}; + +#endif |