#ifndef IMAP_SYNC_PRIVATE_H
#define IMAP_SYNC_PRIVATE_H
#include "imap-sync.h"
struct imap_client_sync_context {
/* if multiple commands are in progress, we may need to wait for them
to finish before syncing mailbox. */
unsigned int counter;
enum mailbox_sync_flags flags;
enum imap_sync_flags imap_flags;
const char *tagline;
};
struct imap_sync_context {
struct client *client;
struct mailbox *box;
enum imap_sync_flags imap_flags;
struct mailbox_transaction_context *t;
struct mailbox_sync_context *sync_ctx;
struct mail *mail;
struct mailbox_status status;
struct mailbox_sync_status sync_status;
struct mailbox_sync_rec sync_rec;
ARRAY_TYPE(keywords) tmp_keywords;
ARRAY_TYPE(seq_range) expunges;
uint32_t seq;
ARRAY_TYPE(seq_range) search_adds, search_removes;
unsigned int search_update_idx;
unsigned int messages_count;
/* Module-specific contexts. */
ARRAY(union imap_module_context *) module_contexts;
bool failed:1;
bool finished:1;
bool no_newmail:1;
bool have_new_mails:1;
bool search_update_notifying:1;
};
#endif