#ifndef MAILBOX_LIST_PRIVATE_H
#define MAILBOX_LIST_PRIVATE_H
#include "mailbox-log.h"
#include "mailbox-list-notify.h"
#include "mail-namespace.h"
#include "mailbox-list.h"
#include "mailbox-list-iter.h"
#include "mail-storage-settings.h"
struct stat;
struct dirent;
struct fs;
struct imap_match_glob;
struct mailbox_tree_context;
struct mailbox_list_notify;
struct mailbox_list_notify_rec;
MAILBOX_NONEXISTENT)) != 0)
struct mailbox_list_vfuncs {
struct mail_storage **storage_r);
const char *storage_name);
const char *vname);
struct mailbox_list_iterate_context *
const char *const *patterns,
enum mailbox_list_iter_flags flags);
const struct mailbox_info *
enum mailbox_list_file_type type,
enum mailbox_info_flags *flags_r);
If it does, mailbox deletion assumes it can safely delete it. */
/* Read subscriptions from src_list, but place them into
dest_list->subscriptions. Set errors to dest_list. */
struct mailbox_list *dest_list);
struct mailbox_list_notify **notify_r);
const struct mailbox_list_notify_rec **rec_r);
};
struct mailbox_list_module_register {
unsigned int id;
};
union mailbox_list_module_context {
};
struct mailbox_list {
const char *name;
/* private: */
/* may not be set yet, use mailbox_list_get_permissions() to access */
int lock_refcount;
bool guid_cache_errors;
/* Last error set in mailbox_list_set_critical(). */
char *last_internal_error;
char *error_string;
bool temporary_error;
};
};
struct mailbox_list_iterate_context {
bool failed;
bool index_iteration;
};
struct mailbox_list_iter_update_context {
};
/* Modules should use do "my_id = mailbox_list_module_id++" and
use objects' module_contexts[id] for their own purposes. */
extern struct mailbox_list_module_register mailbox_list_module_register;
void mailbox_lists_init(void);
void mailbox_lists_deinit(void);
struct mailbox_list_settings *set_r,
const char **error_r);
const char *
const char *
const char *maildir_name);
const char *
const char *
const char *vname);
const char *storage_name);
enum mailbox_list_path_type type);
enum mailbox_list_path_type type,
const char **path_r);
const char *name);
const char *name);
const struct mailbox_info *
const char *dir_path,
const struct dirent *d);
const char **name);
const struct mailbox_permissions *src,
enum mailbox_log_record_type type,
const guid_128_t guid_128);
const struct mailbox_info *
const struct mailbox_info *_info);
#endif