mail-storage-private.h revision ccc895c0358108d2304239063e940b7d75f364ab
ff7056842f14fd3b30a2d327dfab165b9d15dd30Timo Sirainen/* Called after mail storage has been created */
2ed2459dbd183bb371da4a0aecb2d2b74ae7c815Timo Sirainenextern void (*hook_mail_storage_created)(struct mail_storage *storage);
ff7056842f14fd3b30a2d327dfab165b9d15dd30Timo Sirainen/* Called after mailbox has been opened */
ff7056842f14fd3b30a2d327dfab165b9d15dd30Timo Sirainenextern void (*hook_mailbox_opened)(struct mailbox *box);
ac4e6609cbdca594db1b1c02afb1e372ab22e060Timo Sirainen unsigned int id;
ff7056842f14fd3b30a2d327dfab165b9d15dd30Timo Sirainen unsigned int id;
ff7056842f14fd3b30a2d327dfab165b9d15dd30Timo Sirainen void (*class_init)(void);
ff7056842f14fd3b30a2d327dfab165b9d15dd30Timo Sirainen void (*destroy)(struct mail_storage *storage);
ff7056842f14fd3b30a2d327dfab165b9d15dd30Timo Sirainen bool (*autodetect)(const char *data, enum mail_storage_flags flags);
2ed2459dbd183bb371da4a0aecb2d2b74ae7c815Timo Sirainen void (*set_callbacks)(struct mail_storage *storage,
4321f6c969e7b8f6b243ff5bb6b8d297921676f6Timo Sirainen struct mailbox *(*mailbox_open)(struct mail_storage *storage,
306b3f41b05da642d87e7ca7a1496efce9f5902fTimo Sirainen int (*mailbox_create)(struct mail_storage *storage, const char *name,
56b134799a457fd55830355f4c8d746d6bb5206fTimo Sirainen const char *(*get_last_error)(struct mail_storage *storage,
7b85f7d35b2192bdff734d7d2891630bc30b2518Timo Sirainen/* private: */
ff7056842f14fd3b30a2d327dfab165b9d15dd30Timo Sirainen const char *user; /* name of user accessing the storage */
void *callback_context;
struct mailbox_vfuncs {
struct mailbox_sync_context *
void *context);
struct mailbox_transaction_context *
struct mail_keywords *
const char *const keywords[]);
struct mail *
struct mailbox_header_lookup_ctx *
const char *const headers[]);
struct mail_search_context *
union mailbox_module_context {
struct mailbox {
char *name;
struct mailbox_vfuncs v;
unsigned int transaction_count;
struct mail_vfuncs {
struct istream *
union mail_module_context {
struct mail_private {
struct mail_vfuncs v;
struct mailbox_list_context {
bool failed;
struct mailbox_transaction_context {
union mailbox_transaction_module_context *);
union mail_search_module_context {
struct mail_search_context {
char *charset;
struct mail_save_context {
struct mailbox_sync_context {
struct mailbox_header_lookup_ctx {
bool *syntax_error_r);
enum mailbox_list_flags