1
1
#ifndef MAILBOX_LIST_SUBSCRIPTIONS_H
2
2
#define MAILBOX_LIST_SUBSCRIPTIONS_H
4
enum mailbox_info_flags;
5
enum mailbox_list_iter_flags;
6
struct mailbox_tree_context;
4
7
struct mailbox_list_iterate_context;
5
struct mailbox_tree_context;
7
int mailbox_list_subscriptions_fill(struct mailbox_list_iterate_context *ctx,
8
struct mailbox_tree_context *tree_ctx,
9
struct imap_match_glob *glob,
9
int mailbox_list_subscriptions_refresh(struct mailbox_list *src_list,
10
struct mailbox_list *dest_list);
12
/* Set MAILBOX_SUBSCRIBED and MAILBOX_CHILD_SUBSCRIBED flags,
13
clearing them if they already are there when they shouldn't. */
14
void mailbox_list_set_subscription_flags(struct mailbox_list *list,
16
enum mailbox_info_flags *flags);
18
/* Add subscriptions matching the iteration to the given tree */
19
void mailbox_list_subscriptions_fill(struct mailbox_list_iterate_context *ctx,
20
struct mailbox_tree_context *tree,
21
bool default_nonexistent);
23
/* Iterate through subscriptions, call mailbox_list.get_mailbox_flags()
24
if necessary for mailboxes to get their flags. */
25
struct mailbox_list_iterate_context *
26
mailbox_list_subscriptions_iter_init(struct mailbox_list *list,
27
const char *const *patterns,
28
enum mailbox_list_iter_flags flags);
29
const struct mailbox_info *
30
mailbox_list_subscriptions_iter_next(struct mailbox_list_iterate_context *ctx);
31
int mailbox_list_subscriptions_iter_deinit(struct mailbox_list_iterate_context *ctx);