diff options
Diffstat (limited to 'src/lib-storage/index/imapc/imapc-sync.h')
-rw-r--r-- | src/lib-storage/index/imapc/imapc-sync.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/lib-storage/index/imapc/imapc-sync.h b/src/lib-storage/index/imapc/imapc-sync.h new file mode 100644 index 0000000..54a0368 --- /dev/null +++ b/src/lib-storage/index/imapc/imapc-sync.h @@ -0,0 +1,39 @@ +#ifndef IMAPC_SYNC_H +#define IMAPC_SYNC_H + +struct mailbox; +struct mailbox_sync_status; + +struct imapc_sync_store { + enum modify_type modify_type; + const char *flags; + + ARRAY_TYPE(seq_range) uids; +}; + +struct imapc_sync_context { + struct imapc_mailbox *mbox; + struct mail_index_sync_ctx *index_sync_ctx; + struct mail_index_view *sync_view; + struct mail_index_transaction *trans; + + const ARRAY_TYPE(keywords) *keywords; + ARRAY_TYPE(seq_range) expunged_uids; + unsigned int sync_command_count; + + pool_t pool; + HASH_TABLE(struct imapc_sync_store *, struct imapc_sync_store *) stores; + + uint32_t prev_uid1, prev_uid2; + enum modify_type prev_modify_type; + string_t *prev_flags; + + bool failed:1; +}; + +struct mailbox_sync_context * +imapc_mailbox_sync_init(struct mailbox *box, enum mailbox_sync_flags flags); +int imapc_mailbox_sync_deinit(struct mailbox_sync_context *ctx, + struct mailbox_sync_status *status_r); + +#endif |