c25356d5978632df6203437e1953bcb29e0c736fTimo Sirainen#ifndef IMAP_SYNC_H
c25356d5978632df6203437e1953bcb29e0c736fTimo Sirainen#define IMAP_SYNC_H
d756ebcfa96bd7cff02097c8f26df9df368b81b1Timo Sirainen
39e6fcc3e8b1ccb13087c232cb6bdea04d1a20a4Timo Sirainenenum imap_sync_flags {
ca9b4bd99287f7aef3065c9973f8d440bf5bbbc5Timo Sirainen IMAP_SYNC_FLAG_SEND_UID = 0x01,
ca9b4bd99287f7aef3065c9973f8d440bf5bbbc5Timo Sirainen IMAP_SYNC_FLAG_SAFE = 0x02
39e6fcc3e8b1ccb13087c232cb6bdea04d1a20a4Timo Sirainen};
39e6fcc3e8b1ccb13087c232cb6bdea04d1a20a4Timo Sirainen
e60a349c641bb2f4723e4a395a25f55531682d2bTimo Sirainenstruct client;
e60a349c641bb2f4723e4a395a25f55531682d2bTimo Sirainen
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainenstruct imap_sync_context *
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainenimap_sync_init(struct client *client, struct mailbox *box,
39e6fcc3e8b1ccb13087c232cb6bdea04d1a20a4Timo Sirainen enum imap_sync_flags imap_flags, enum mailbox_sync_flags flags);
28cd2599128e102198758cf6080588305feb6bcdTimo Sirainenint imap_sync_deinit(struct imap_sync_context *ctx,
28cd2599128e102198758cf6080588305feb6bcdTimo Sirainen struct client_command_context *sync_cmd);
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainenint imap_sync_more(struct imap_sync_context *ctx);
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen
5735ada0f82788ee1b5228978d5bd8dad5a04219Timo Sirainen/* Returns TRUE if syncing would be allowed currently. */
5735ada0f82788ee1b5228978d5bd8dad5a04219Timo Sirainenbool imap_sync_is_allowed(struct client *client);
5735ada0f82788ee1b5228978d5bd8dad5a04219Timo Sirainen
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainenbool cmd_sync(struct client_command_context *cmd, enum mailbox_sync_flags flags,
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen enum imap_sync_flags imap_flags, const char *tagline);
b66d803de86bfb411165b3465b0d9ef64ecfe2a1Timo Sirainenbool cmd_sync_delayed(struct client *client) ATTR_NOWARN_UNUSED_RESULT;
d756ebcfa96bd7cff02097c8f26df9df368b81b1Timo Sirainen
d756ebcfa96bd7cff02097c8f26df9df368b81b1Timo Sirainen#endif