mail-storage.h revision afff56f1266ba321b115584141bbb056267f4818
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen/* If some operation is taking long, call notify_ok every n seconds. */
806cb455553b71934314da98f1b4a694a3aa152eTimo Sirainen /* Remember message headers' MD5 sum */
806cb455553b71934314da98f1b4a694a3aa152eTimo Sirainen /* Don't try to autodetect anything, require that the given data
806cb455553b71934314da98f1b4a694a3aa152eTimo Sirainen contains all the necessary information. */
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen /* Don't autocreate any directories. If they don't exist,
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen fail to create the storage. */
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen /* Don't verify existence or accessibility of any directories.
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen Create the storage in any case. */
473080c7c0d25ddfdf77e7dfa0ba8f73c6c669d5Timo Sirainen /* Mailbox must not be modified even if asked */
356303df200c991580bd24041996a070ad08c05eTimo Sirainen /* Only saving/copying mails to mailbox works. */
6135260095e1704ed6edff9d00bdfc043c11429cTimo Sirainen /* Don't reset MAIL_RECENT flags when syncing */
473080c7c0d25ddfdf77e7dfa0ba8f73c6c669d5Timo Sirainen /* Don't create index files for the mailbox */
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen /* Keep mailbox exclusively locked all the time while it's open */
00bde9ae9eab9e720462bf6ec9a4dd85e88c3bbfTimo Sirainen /* Enable if mailbox is used for serving POP3. This allows making
00bde9ae9eab9e720462bf6ec9a4dd85e88c3bbfTimo Sirainen better caching decisions. */
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen /* Enable if mailbox is used for saving a mail delivery using MDA.
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen This causes ACL plugin to use POST right rather than INSERT. */
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen /* Force opening mailbox and ignoring any ACLs */
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen /* Open mailbox even if it's already marked as deleted */
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen /* Enable tracking modsequences */
806cb455553b71934314da98f1b4a694a3aa152eTimo Sirainen /* Enable tracking expunge modsequences */
3b94ff5951db4d4eddb7a80ed4e3f61207202635Timo Sirainen /* Update search results whenever the mailbox view is synced.
66d2db642fe24d555d113ba463e446b038d476efTimo Sirainen Expunged messages are removed even without this flag. */
806cb455553b71934314da98f1b4a694a3aa152eTimo Sirainen /* Queue changes so _sync() can be used. */
806cb455553b71934314da98f1b4a694a3aa152eTimo Sirainen/* Maximum size for sort program (each one separately + END) */
6fabfb7bbfd88d0c1de66981e52850f26067623bTimo Sirainen MAIL_SORT_FLAG_REVERSE = 0x1000, /* reverse this mask type */
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen MAIL_SORT_END = 0x0000 /* ends sort program */
49e513d090753ccbf95560b2f3a21f081a5b6c51Timo Sirainen /* Set has_nuls / has_no_nuls fields */
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen /* specials: */
806cb455553b71934314da98f1b4a694a3aa152eTimo Sirainen /* Hide changes done in this transaction from next view sync */
6fabfb7bbfd88d0c1de66981e52850f26067623bTimo Sirainen /* External transaction. Should be used for copying and appends,
6fabfb7bbfd88d0c1de66981e52850f26067623bTimo Sirainen but nothing else. */
6fabfb7bbfd88d0c1de66981e52850f26067623bTimo Sirainen /* Always assign UIDs to messages when saving/copying. Normally this
6fabfb7bbfd88d0c1de66981e52850f26067623bTimo Sirainen is done only if it can be done easily. */
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen /* Refresh the index so lookups return latest flags/modseqs */
806cb455553b71934314da98f1b4a694a3aa152eTimo Sirainen /* Make sure we sync all external changes done to mailbox */
806cb455553b71934314da98f1b4a694a3aa152eTimo Sirainen /* Make sure we write all our internal changes into the mailbox */
c64e714193097f841691dcfa2902c270cb47bff8Timo Sirainen /* If it's not too much trouble, check if there are some changes */
806cb455553b71934314da98f1b4a694a3aa152eTimo Sirainen /* Don't sync expunges from our view */
74674a53a72dab535c61f455b2246ef2797844eaTimo Sirainen /* If mailbox is currently inconsistent, fix it instead of failing. */
806cb455553b71934314da98f1b4a694a3aa152eTimo Sirainen /* Syncing after an EXPUNGE command. This is just an informational
806cb455553b71934314da98f1b4a694a3aa152eTimo Sirainen flag for plugins. */
806cb455553b71934314da98f1b4a694a3aa152eTimo Sirainen /* Force doing a full resync of indexes. */
25757faf029c369a8318349dafe952e2358df1d8Timo Sirainen /* sum of virtual size of all messages in mailbox */
struct mailbox_update {
const char *const *cache_fields;
struct mail_transaction_commit_changes {
unsigned int ignored_modseq_changes;
struct mailbox_sync_rec {
struct mailbox_sync_status {
struct mailbox_expunge_rec {
enum mail_lookup_abort {
struct mail {
struct mail_storage_callbacks {
void *context);
void *context);
struct mailbox_virtual_pattern {
const char *pattern;
void mail_storage_init(void);
void mail_storage_deinit(void);
void mail_storage_register_all(void);
const struct mail_storage_settings *
void *context);
bool directory);
bool rename_children);
enum mailbox_feature
struct mail_namespace *
const struct mail_storage_settings *
struct mailbox_sync_context *
#ifdef CONTEXT_TYPE_SAFETY
struct mailbox_transaction_context *
struct mailbox_transaction_context **t,
struct mailbox *
bool only_with_msgs);
struct mail_search_context *
struct mail_search_result *
struct mail_keywords *
const char *const keywords[]);
struct mail_keywords *
const char **error_r);
struct mail_save_context *
replicating/restoring an existing mailbox. */
const char *envelope);
const char *uidl);
struct mailbox_header_lookup_ctx *
const char **value_r);
const char **value_r);
const char *const **value_r);
const char *const **value_r);
const char **value_r);
const char *mail_generate_guid_string(void);