view src/imap/imap-sync.h @ 7353:33304b5f6070 HEAD

Syncing supports now calling a callback after sync instead of just sending a tagged reply. Use it with EXPUNGE to retry EXPUNGE in case the syncing had seen new \Deleted flags (Outlook workaround).
author Timo Sirainen <tss@iki.fi>
date Wed, 05 Mar 2008 02:54:33 +0200
parents bca55675d77c
children ffaf1ea49704
line wrap: on
line source

#ifndef IMAP_SYNC_H
#define IMAP_SYNC_H

enum imap_sync_flags {
	IMAP_SYNC_FLAG_SEND_UID	= 0x01,
	IMAP_SYNC_FLAG_SAFE	= 0x02
};

typedef bool imap_sync_callback_t(struct client_command_context *cmd);

struct client;

struct imap_sync_context *
imap_sync_init(struct client *client, struct mailbox *box,
	       enum imap_sync_flags imap_flags, enum mailbox_sync_flags flags);
int imap_sync_deinit(struct imap_sync_context *ctx);
int imap_sync_more(struct imap_sync_context *ctx);

bool cmd_sync(struct client_command_context *cmd, enum mailbox_sync_flags flags,
	      enum imap_sync_flags imap_flags, const char *tagline);
bool cmd_sync_callback(struct client_command_context *cmd,
		       enum mailbox_sync_flags flags,
		       enum imap_sync_flags imap_flags,
		       imap_sync_callback_t *callback);
bool cmd_sync_delayed(struct client *client);

#endif