index-sync-changes.h revision 022412398e56a8f31ef111cfd7271498d64af9a9
76b43e4417bab52e913da39b5f5bc2a130d3f149Timo Sirainen#ifndef __INDEX_SYNC_CHANGES_H
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen#define __INDEX_SYNC_CHANGES_H
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenstruct index_sync_changes_context *
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenindex_sync_changes_init(struct index_mailbox *ibox,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen struct mail_index_sync_ctx *index_sync_ctx,
e8bdf1be00aec45d0c6dd72ad9c8be02a3dfc778Timo Sirainen struct mail_index_view *sync_view,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen struct mail_index_transaction *sync_trans,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen bool dirty_flag_updates);
c36ec256c1bd1abe1c12e792cf64f0b7e3b3135aTimo Sirainenvoid index_sync_changes_deinit(struct index_sync_changes_context **_ctx);
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenvoid index_sync_changes_reset(struct index_sync_changes_context *ctx);
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenvoid index_sync_changes_delete_to(struct index_sync_changes_context *ctx,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen uint32_t last_uid);
b5e6f6f27c1461f0f9f202615eeb738a645188c3Timo Sirainen
2cfe9983ce7a6280636ee12beccc2e865111967bTimo Sirainenint index_sync_changes_read(struct index_sync_changes_context *ctx,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen uint32_t uid, bool *sync_expunge_r);
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenbool index_sync_changes_have(struct index_sync_changes_context *ctx);
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenuint32_t
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenindex_sync_changes_get_next_uid(struct index_sync_changes_context *ctx);
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenvoid index_sync_changes_apply(struct index_sync_changes_context *ctx,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen pool_t pool, uint8_t *flags,
ccc895c0358108d2304239063e940b7d75f364abTimo Sirainen ARRAY_TYPE(keyword_indexes) *keywords,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen enum mailbox_sync_type *sync_type_r);
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen#endif
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen