summaryrefslogtreecommitdiffstats
path: root/src/imap/imap-sync-private.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/imap/imap-sync-private.h')
-rw-r--r--src/imap/imap-sync-private.h47
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