Mercurial > dovecot > core-2.2
view src/lib-storage/index/imapc/imapc-storage.h @ 12625:495fb0e9f7cc
imapc: Moved settings from plugin {} section to proper imapc_* settings.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 01 Feb 2011 19:05:54 +0200 |
parents | 3dde816d945d |
children | 4fdf3084f74f |
line wrap: on
line source
#ifndef IMAPC_STORAGE_H #define IMAPC_STORAGE_H #include "index-storage.h" #define IMAPC_STORAGE_NAME "imapc" struct imap_arg; struct imapc_untagged_reply; struct imapc_command_reply; struct imapc_mailbox; struct imapc_storage; typedef void imapc_storage_callback_t(const struct imapc_untagged_reply *reply, struct imapc_storage *storage); typedef void imapc_mailbox_callback_t(const struct imapc_untagged_reply *reply, struct imapc_mailbox *mbox); struct imapc_storage_event_callback { const char *name; imapc_storage_callback_t *callback; }; struct imapc_mailbox_event_callback { const char *name; imapc_mailbox_callback_t *callback; }; struct imapc_storage { struct mail_storage storage; const struct imapc_settings *set; struct imapc_mailbox_list *list; struct imapc_client *client; struct imapc_mailbox *cur_status_box; struct mailbox_status *cur_status; ARRAY_DEFINE(untagged_callbacks, struct imapc_storage_event_callback); }; struct imapc_mailbox { struct mailbox box; struct imapc_storage *storage; struct imapc_client_mailbox *client_box; struct mail_index_transaction *delayed_sync_trans; struct mail_index_view *delayed_sync_view; struct timeout *to_idle; struct mail *cur_fetch_mail; ARRAY_DEFINE(untagged_callbacks, struct imapc_mailbox_event_callback); ARRAY_DEFINE(resp_text_callbacks, struct imapc_mailbox_event_callback); unsigned int opening:1; unsigned int new_msgs:1; }; struct imapc_simple_context { struct imapc_storage *storage; int ret; }; struct mail_save_context * imapc_save_alloc(struct mailbox_transaction_context *_t); int imapc_save_begin(struct mail_save_context *ctx, struct istream *input); int imapc_save_continue(struct mail_save_context *ctx); int imapc_save_finish(struct mail_save_context *ctx); void imapc_save_cancel(struct mail_save_context *ctx); int imapc_copy(struct mail_save_context *ctx, struct mail *mail); int imapc_transaction_save_commit_pre(struct mail_save_context *ctx); void imapc_transaction_save_commit_post(struct mail_save_context *ctx, struct mail_index_transaction_commit_result *result); void imapc_transaction_save_rollback(struct mail_save_context *ctx); struct mail_search_context * imapc_search_init(struct mailbox_transaction_context *t, struct mail_search_args *args, const enum mail_sort_type *sort_program); int imapc_search_deinit(struct mail_search_context *_ctx); bool imapc_search_next_nonblock(struct mail_search_context *_ctx, struct mail *mail, bool *tryagain_r); bool imapc_search_next_update_seq(struct mail_search_context *_ctx); void imapc_fetch_mail_update(struct mail *mail, const struct imapc_untagged_reply *reply, const struct imap_arg *args); void imapc_copy_error_from_reply(struct imapc_storage *storage, enum mail_error default_error, const struct imapc_command_reply *reply); void imapc_simple_callback(const struct imapc_command_reply *reply, void *context); void imapc_async_stop_callback(const struct imapc_command_reply *reply, void *context); void imapc_storage_register_untagged(struct imapc_storage *storage, const char *name, imapc_storage_callback_t *callback); void imapc_mailbox_register_untagged(struct imapc_mailbox *mbox, const char *name, imapc_mailbox_callback_t *callback); void imapc_mailbox_register_resp_text(struct imapc_mailbox *mbox, const char *key, imapc_mailbox_callback_t *callback); void imapc_mailbox_register_callbacks(struct imapc_mailbox *mbox); #endif