view src/lib-storage/list/mailbox-list-subscriptions.h @ 12637:4e4c7f982fd5

lib-storage: Cleaned up subscription listing internally. The subscription listing code is now mostly separated from the mailbox listing code.
author Timo Sirainen <tss@iki.fi>
date Wed, 02 Feb 2011 05:33:04 +0200
parents e4eb71ae8e96
children 28f43332ba12
line wrap: on
line source

#ifndef MAILBOX_LIST_SUBSCRIPTIONS_H
#define MAILBOX_LIST_SUBSCRIPTIONS_H

enum mailbox_info_flags;
enum mailbox_list_iter_flags;
struct mailbox_tree_context;
struct mailbox_list_iterate_context;

int mailbox_list_subscriptions_refresh(struct mailbox_list *list);

/* Set MAILBOX_SUBSCRIBED and MAILBOX_CHILD_SUBSCRIBED flags,
   clearing them if they already are there when they shouldn't. */
void mailbox_list_set_subscription_flags(struct mailbox_list *list,
					 const char *vname,
					 enum mailbox_info_flags *flags);

/* Add subscriptions matching the iteration to the given tree */
void mailbox_list_subscriptions_fill(struct mailbox_list_iterate_context *ctx,
				     struct mailbox_tree_context *tree);

/* Iterate through subscriptions, call mailbox_list.get_mailbox_flags()
   if necessary for mailboxes to get their flags. */
struct mailbox_list_iterate_context *
mailbox_list_subscriptions_iter_init(struct mailbox_list *list,
				     const char *const *patterns,
				     enum mailbox_list_iter_flags flags);
const struct mailbox_info *
mailbox_list_subscriptions_iter_next(struct mailbox_list_iterate_context *ctx);
int mailbox_list_subscriptions_iter_deinit(struct mailbox_list_iterate_context *ctx);

#endif