diff options
Diffstat (limited to 'src/lib-storage/index/dbox-common/dbox-mail.h')
-rw-r--r-- | src/lib-storage/index/dbox-common/dbox-mail.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/lib-storage/index/dbox-common/dbox-mail.h b/src/lib-storage/index/dbox-common/dbox-mail.h new file mode 100644 index 0000000..c03652c --- /dev/null +++ b/src/lib-storage/index/dbox-common/dbox-mail.h @@ -0,0 +1,34 @@ +#ifndef DBOX_MAIL_H +#define DBOX_MAIL_H + +#include "index-mail.h" + +struct dbox_mail { + struct index_mail imail; + + struct dbox_file *open_file; + uoff_t offset; +}; + +#define DBOX_MAIL(s) container_of(s, struct dbox_mail, imail.mail.mail) + +struct mail * +dbox_mail_alloc(struct mailbox_transaction_context *t, + enum mail_fetch_field wanted_fields, + struct mailbox_header_lookup_ctx *wanted_headers); +void dbox_mail_close(struct mail *mail); + +int dbox_mail_get_physical_size(struct mail *mail, uoff_t *size_r); +int dbox_mail_get_virtual_size(struct mail *mail, uoff_t *size_r); +int dbox_mail_get_received_date(struct mail *mail, time_t *date_r); +int dbox_mail_get_save_date(struct mail *_mail, time_t *date_r); +int dbox_mail_get_special(struct mail *mail, enum mail_fetch_field field, + const char **value_r); +int dbox_mail_get_stream(struct mail *_mail, bool get_body ATTR_UNUSED, + struct message_size *hdr_size, + struct message_size *body_size, + struct istream **stream_r); + +int dbox_mail_metadata_read(struct dbox_mail *mail, struct dbox_file **file_r); + +#endif |