mdbox-storage.h revision a10ed8c47534b4c6b6bf2711ccfe577e720a47b4
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainen#define MDBOX_GLOBAL_INDEX_PREFIX "dovecot.map.index"
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainen#define MDBOX_MAIL_FILE_FORMAT MDBOX_MAIL_FILE_PREFIX"%u"
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainen#define MDBOX_CLOSE_UNUSED_FILES_TIMEOUT_SECS 30
dee43975a70bcdb9dc83d34d6a2b177d37bb7194Timo Sirainen#define MDBOX_INDEX_HEADER_MIN_SIZE (sizeof(uint32_t))
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainen /* paths for storage directories */
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainen ARRAY_DEFINE(open_files, struct mdbox_file *);
dee43975a70bcdb9dc83d34d6a2b177d37bb7194Timo Sirainen /* if non-zero, storage should be rebuilt (except if rebuild_count
dee43975a70bcdb9dc83d34d6a2b177d37bb7194Timo Sirainen has changed from this value) */
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainen /* UNIX timestamp of when the message was saved/copied to this
3b49aee9ced3b0370a3be396aca53acd5f21418cTimo Sirainenint mdbox_mail_open(struct dbox_mail *mail, uoff_t *offset_r,
3b49aee9ced3b0370a3be396aca53acd5f21418cTimo Sirainen/* Get map_uid for wanted message. */
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenint mdbox_mail_lookup(struct mdbox_mailbox *mbox, struct mail_index_view *view,
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenuint32_t dbox_get_uidvalidity_next(struct mailbox_list *list);
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenint mdbox_read_header(struct mdbox_mailbox *mbox,
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenvoid mdbox_update_header(struct mdbox_mailbox *mbox,
dee43975a70bcdb9dc83d34d6a2b177d37bb7194Timo Sirainen const struct mailbox_update *update) ATTR_NULL(3);
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenmdbox_save_alloc(struct mailbox_transaction_context *_t);
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenint mdbox_save_begin(struct mail_save_context *ctx, struct istream *input);
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenint mdbox_save_finish(struct mail_save_context *ctx);
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenvoid mdbox_save_cancel(struct mail_save_context *ctx);
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenmdbox_save_file_get_file(struct mailbox_transaction_context *t,
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenint mdbox_transaction_save_commit_pre(struct mail_save_context *ctx);
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenvoid mdbox_transaction_save_commit_post(struct mail_save_context *ctx,
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainen struct mail_index_transaction_commit_result *result);
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenvoid mdbox_transaction_save_rollback(struct mail_save_context *ctx);
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenint mdbox_copy(struct mail_save_context *ctx, struct mail *mail);
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenvoid mdbox_purge_alt_flag_change(struct mail *mail, bool move_to_alt);