dbox-save.h revision e6440616c02bb1404dc35debf45d9741260c7831
e364bf323ef28133cdf28e6b31bad47999cdbe49Timo Sirainen#ifndef DBOX_SAVE_H
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen#define DBOX_SAVE_H
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainenstruct dbox_save_context {
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen struct mail_save_context ctx;
d39a04db2f4d0599cb9b5f03a9aa10a3c234453cTimo Sirainen struct mail_index_transaction *trans;
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen /* updated for each appended mail: */
a3fe8c0c54d87822f4b4f8f0d10caac611861b2bTimo Sirainen uint32_t seq;
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen struct istream *input;
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen struct mail *mail;
c99fe55d4535d839a6ad0735c4719e076a1adb2cTimo Sirainen
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen struct dbox_file *cur_file;
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen struct ostream *dbox_output;
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen unsigned int failed:1;
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen unsigned int finished:1;
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen};
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainenvoid dbox_save_begin(struct dbox_save_context *ctx, struct istream *input);
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainenint dbox_save_continue(struct mail_save_context *_ctx);
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainenvoid dbox_save_end(struct dbox_save_context *ctx);
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainenvoid dbox_save_write_metadata(struct mail_save_context *ctx,
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen struct ostream *output,
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen const char *orig_mailbox_name,
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen uint8_t guid_128_r[MAIL_GUID_128_SIZE]);
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainenvoid dbox_save_add_to_index(struct dbox_save_context *ctx);
cf0ad1a0bddb0787f3d7b408a96d721a8b2a98a3Timo Sirainen
cf0ad1a0bddb0787f3d7b408a96d721a8b2a98a3Timo Sirainen#endif
cf0ad1a0bddb0787f3d7b408a96d721a8b2a98a3Timo Sirainen