1
#ifndef DSYNC_MAILBOX_IMPORT_H
2
#define DSYNC_MAILBOX_IMPORT_H
4
enum dsync_mailbox_import_flags {
5
DSYNC_MAILBOX_IMPORT_FLAG_MASTER_BRAIN = 0x01,
6
DSYNC_MAILBOX_IMPORT_FLAG_WANT_MAIL_REQUESTS = 0x02,
7
DSYNC_MAILBOX_IMPORT_FLAG_REVERT_LOCAL_CHANGES = 0x04,
8
DSYNC_MAILBOX_IMPORT_FLAG_DEBUG = 0x08,
9
DSYNC_MAILBOX_IMPORT_FLAG_MAILS_HAVE_GUIDS = 0x10
13
struct dsync_mailbox_attribute;
15
struct dsync_mail_change;
16
struct dsync_transaction_log_scan;
18
struct dsync_mailbox_importer *
19
dsync_mailbox_import_init(struct mailbox *box,
20
struct dsync_transaction_log_scan *log_scan,
21
uint32_t last_common_uid,
22
uint64_t last_common_modseq,
23
uint64_t last_common_pvt_modseq,
24
uint32_t remote_uid_next,
25
uint32_t remote_first_recent_uid,
26
uint64_t remote_highest_modseq,
27
uint64_t remote_highest_pvt_modseq,
28
enum dsync_mailbox_import_flags flags);
29
int dsync_mailbox_import_attribute(struct dsync_mailbox_importer *importer,
30
const struct dsync_mailbox_attribute *attr);
31
int dsync_mailbox_import_change(struct dsync_mailbox_importer *importer,
32
const struct dsync_mail_change *change);
33
void dsync_mailbox_import_changes_finish(struct dsync_mailbox_importer *importer);
34
const struct dsync_mail_request *
35
dsync_mailbox_import_next_request(struct dsync_mailbox_importer *importer);
36
void dsync_mailbox_import_mail(struct dsync_mailbox_importer *importer,
37
const struct dsync_mail *mail);
38
int dsync_mailbox_import_deinit(struct dsync_mailbox_importer **importer,
40
uint32_t *last_common_uid_r,
41
uint64_t *last_common_modseq_r,
42
uint64_t *last_common_pvt_modseq_r,
43
bool *changes_during_sync_r);
45
const char *dsync_mailbox_import_get_proctitle(struct dsync_mailbox_importer *importer);