virtual-storage.h revision dee43975a70bcdb9dc83d34d6a2b177d37bb7194
#ifndef VIRTUAL_STORAGE_H
#define VIRTUAL_STORAGE_H
#include "seq-range-array.h"
#include "index-storage.h"
#include "mailbox-list-private.h"
#define VIRTUAL_STORAGE_NAME "virtual"
#define VIRTUAL_SUBSCRIPTION_FILE_NAME ".virtual-subscriptions"
#define VIRTUAL_CONFIG_FNAME "dovecot-virtual"
#define VIRTUAL_INDEX_PREFIX "dovecot.index"
struct virtual_mail_index_record {
};
struct virtual_storage {
struct mail_storage storage;
};
struct virtual_backend_uidmap {
/* can be 0 temporarily while syncing before the UID is assigned */
};
struct virtual_backend_box {
const char *name;
struct mail_search_args *search_args;
struct mail_search_result *search_result;
/* Messages currently included in the virtual mailbox,
sorted by real_uid */
/* temporary mail used while syncing */
/* pending removed UIDs */
unsigned int sync_seen:1;
};
struct virtual_mailbox {
struct index_mailbox ibox;
struct virtual_storage *storage;
const char *path;
/* Mailboxes this virtual mailbox consists of, sorted by mailbox_id */
unsigned int uids_mapped:1;
};
extern struct mail_storage virtual_storage;
extern struct mail_vfuncs virtual_mail_vfuncs;
struct virtual_backend_box *
struct mailbox_transaction_context *
struct mailbox *backend_box);
struct mail *
virtual_mail_alloc(struct mailbox_transaction_context *t,
struct mailbox_header_lookup_ctx *wanted_headers);
struct mailbox_sync_context *
void virtual_transaction_class_init(void);
void virtual_transaction_class_deinit(void);
#endif