summaryrefslogtreecommitdiffstats
path: root/src/lib-storage/list/subscription-file.h
blob: fbaa0a3ac130bb37a21874dfd6e6abc6abfb37d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef SUBSCRIPTION_FILE_H
#define SUBSCRIPTION_FILE_H

struct stat;
struct mailbox_list;

/* Initialize new subscription file listing. */
struct subsfile_list_context *
subsfile_list_init(struct mailbox_list *list, const char *path);
/* Deinitialize subscription file listing. Returns 0 if ok, or -1 if some
   error occurred while listing. */
int subsfile_list_deinit(struct subsfile_list_context **ctx);

/* Call fstat() for subscription file */
int subsfile_list_fstat(struct subsfile_list_context *ctx, struct stat *st_r);

/* Returns the next subscribed mailbox, or NULL. */
const char *subsfile_list_next(struct subsfile_list_context *ctx);

/* Returns 1 if subscribed, 0 if no changes done, -1 if error. */
int subsfile_set_subscribed(struct mailbox_list *list, const char *path,
			    const char *temp_prefix, const char *name,
			    bool set);

#endif