1 #ifndef DSYNC_MAILBOX_IMPORT_H 2 #define DSYNC_MAILBOX_IMPORT_H 3 4 #include "mail-error.h" 5 6 enum dsync_mailbox_import_flags { 7 DSYNC_MAILBOX_IMPORT_FLAG_MASTER_BRAIN = 0x01, 8 DSYNC_MAILBOX_IMPORT_FLAG_WANT_MAIL_REQUESTS = 0x02, 9 DSYNC_MAILBOX_IMPORT_FLAG_REVERT_LOCAL_CHANGES = 0x04, 10 DSYNC_MAILBOX_IMPORT_FLAG_DEBUG = 0x08, 11 DSYNC_MAILBOX_IMPORT_FLAG_MAILS_HAVE_GUIDS = 0x10, 12 DSYNC_MAILBOX_IMPORT_FLAG_MAILS_USE_GUID128 = 0x20, 13 DSYNC_MAILBOX_IMPORT_FLAG_NO_NOTIFY = 0x40, 14 DSYNC_MAILBOX_IMPORT_FLAG_EMPTY_HDR_WORKAROUND = 0x100 15 }; 16 17 struct mailbox; 18 struct dsync_mailbox_attribute; 19 struct dsync_mail; 20 struct dsync_mail_change; 21 struct dsync_transaction_log_scan; 22 23 struct dsync_mailbox_importer * 24 dsync_mailbox_import_init(struct mailbox *box, 25 struct mailbox *virtual_all_box, 26 struct dsync_transaction_log_scan *log_scan, 27 uint32_t last_common_uid, 28 uint64_t last_common_modseq, 29 uint64_t last_common_pvt_modseq, 30 uint32_t remote_uid_next, 31 uint32_t remote_first_recent_uid, 32 uint64_t remote_highest_modseq, 33 uint64_t remote_highest_pvt_modseq, 34 time_t sync_since_timestamp, 35 time_t sync_until_timestamp, 36 uoff_t sync_max_size, 37 const char *sync_flag, 38 unsigned int commit_msgs_interval, 39 enum dsync_mailbox_import_flags flags, 40 unsigned int hdr_hash_version, 41 const char *const *hashed_headers); 42 int dsync_mailbox_import_attribute(struct dsync_mailbox_importer *importer, 43 const struct dsync_mailbox_attribute *attr); 44 int dsync_mailbox_import_change(struct dsync_mailbox_importer *importer, 45 const struct dsync_mail_change *change); 46 int dsync_mailbox_import_changes_finish(struct dsync_mailbox_importer *importer); 47 const struct dsync_mail_request * 48 dsync_mailbox_import_next_request(struct dsync_mailbox_importer *importer); 49 int dsync_mailbox_import_mail(struct dsync_mailbox_importer *importer, 50 const struct dsync_mail *mail); 51 int dsync_mailbox_import_deinit(struct dsync_mailbox_importer **importer, 52 bool success, 53 uint32_t *last_common_uid_r, 54 uint64_t *last_common_modseq_r, 55 uint64_t *last_common_pvt_modseq_r, 56 uint32_t *last_messages_count_r, 57 const char **changes_during_sync_r, 58 bool *require_full_resync_r, 59 enum mail_error *error_r); 60 61 const char *dsync_mailbox_import_get_proctitle(struct dsync_mailbox_importer *importer); 62 63 #endif 64