raw-storage.h revision 15dd1857d40544e2c356d4f1c87c42a0579c665c
fa9e4066f08beec538e775443c5be79dd423fcabahrens#ifndef RAW_STORAGE_H
fa9e4066f08beec538e775443c5be79dd423fcabahrens#define RAW_STORAGE_H
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens#include "index-storage.h"
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock#define RAW_STORAGE_NAME "raw"
fa9e4066f08beec538e775443c5be79dd423fcabahrens#define RAW_SUBSCRIPTION_FILE_NAME "subscriptions"
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensstruct raw_storage {
fa9e4066f08beec538e775443c5be79dd423fcabahrens struct mail_storage storage;
fa9e4066f08beec538e775443c5be79dd423fcabahrens};
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensstruct raw_mailbox {
fa9e4066f08beec538e775443c5be79dd423fcabahrens struct mailbox box;
fa9e4066f08beec538e775443c5be79dd423fcabahrens struct raw_storage *storage;
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens time_t mtime, ctime;
fa9e4066f08beec538e775443c5be79dd423fcabahrens uoff_t size;
fa9e4066f08beec538e775443c5be79dd423fcabahrens const char *envelope_sender;
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens unsigned int synced:1;
e14bb3258d05c1b1077e2db7cf77088924e56919Jeff Bonwick unsigned int have_filename:1;
fa9e4066f08beec538e775443c5be79dd423fcabahrens};
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensextern struct mail_vfuncs raw_mail_vfuncs;
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensstruct mail_user *
fa9e4066f08beec538e775443c5be79dd423fcabahrensraw_storage_create_from_set(const struct setting_parser_info *set_info,
fa9e4066f08beec538e775443c5be79dd423fcabahrens const struct mail_user_settings *set);
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensint raw_mailbox_alloc_stream(struct mail_user *user, struct istream *input,
fa9e4066f08beec538e775443c5be79dd423fcabahrens time_t received_time, const char *envelope_sender,
fa9e4066f08beec538e775443c5be79dd423fcabahrens struct mailbox **box_r);
fa9e4066f08beec538e775443c5be79dd423fcabahrensint raw_mailbox_alloc_path(struct mail_user *user, const char *path,
13506d1eefbbc37e2f12a0528831d9f6d4c361d7maybee time_t received_time, const char *envelope_sender,
e05725b117836db173257fae43fb0746eb857fb5bonwick struct mailbox **box_r);
13506d1eefbbc37e2f12a0528831d9f6d4c361d7maybee
fa9e4066f08beec538e775443c5be79dd423fcabahrens#endif
fa9e4066f08beec538e775443c5be79dd423fcabahrens