mailbox-list-index.h [plain text]
#ifndef MAILBOX_LIST_INDEX_H
#define MAILBOX_LIST_INDEX_H
struct mailbox_list_index_view;
struct mailbox_list_index_sync_ctx;
enum mailbox_list_index_flags {
MAILBOX_LIST_INDEX_FLAG_CHILDREN = 0x01,
MAILBOX_LIST_INDEX_FLAG_NOCHILDREN = 0x02,
MAILBOX_LIST_INDEX_FLAG_NOSELECT = 0x04,
MAILBOX_LIST_INDEX_FLAG_NONEXISTENT = 0x08
};
enum mailbox_list_sync_flags {
MAILBOX_LIST_SYNC_FLAG_RECURSIVE = 0x01,
MAILBOX_LIST_SYNC_FLAG_PARTIAL = 0x02
};
struct mailbox_list_index_info {
const char *name;
uint32_t uid;
bool has_children;
};
struct mailbox_list_index *
mailbox_list_index_alloc(const char *path, char separator,
struct mail_index *mail_index);
void mailbox_list_index_free(struct mailbox_list_index **index);
int mailbox_list_index_open_or_create(struct mailbox_list_index *index);
int mailbox_list_index_sync_init(struct mailbox_list_index *index,
const char *path,
enum mailbox_list_sync_flags flags,
struct mailbox_list_index_sync_ctx **ctx_r);
struct mail_index_view *
mailbox_list_index_sync_get_view(struct mailbox_list_index_sync_ctx *ctx);
struct mail_index_transaction *
mailbox_list_index_sync_get_transaction(struct mailbox_list_index_sync_ctx*ctx);
int mailbox_list_index_sync_more(struct mailbox_list_index_sync_ctx *ctx,
const char *name, uint32_t *seq_r);
int mailbox_list_index_sync_commit(struct mailbox_list_index_sync_ctx **ctx);
void mailbox_list_index_sync_rollback(struct mailbox_list_index_sync_ctx **ctx);
int mailbox_list_index_view_init(struct mailbox_list_index *index,
struct mail_index_view *mail_view,
struct mailbox_list_index_view **view_r);
void mailbox_list_index_view_deinit(struct mailbox_list_index_view **view);
int mailbox_list_index_lookup(struct mailbox_list_index_view *view,
const char *name, uint32_t *uid_r);
struct mailbox_list_iter_ctx *
mailbox_list_index_iterate_init(struct mailbox_list_index_view *view,
const char *path, int recurse_level);
int mailbox_list_index_iterate_next(struct mailbox_list_iter_ctx *ctx,
struct mailbox_list_index_info *info_r);
void mailbox_list_index_iterate_deinit(struct mailbox_list_iter_ctx **ctx);
#endif