changeset 6462:60a34f26c35a HEAD

Added mailbox_sync() to easily synchronize a mailbox.
author Timo Sirainen <tss@iki.fi>
date Sat, 22 Sep 2007 16:21:09 +0300
parents c057369df638
children aeee5076f99f
files src/lib-storage/mail-storage.c src/lib-storage/mail-storage.h
diffstat 2 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/mail-storage.c	Sat Sep 22 16:15:12 2007 +0300
+++ b/src/lib-storage/mail-storage.c	Sat Sep 22 16:21:09 2007 +0300
@@ -520,6 +520,19 @@
 	return ctx->box->v.sync_deinit(ctx, status_items, status_r);
 }
 
+int mailbox_sync(struct mailbox *box, enum mailbox_sync_flags flags,
+		 enum mailbox_status_items status_items,
+		 struct mailbox_status *status_r)
+{
+	struct mailbox_sync_context *ctx;
+        struct mailbox_sync_rec sync_rec;
+
+	ctx = mailbox_sync_init(box, flags);
+	while (mailbox_sync_next(ctx, &sync_rec))
+		;
+	return mailbox_sync_deinit(&ctx, status_items, status_r);
+}
+
 #undef mailbox_notify_changes
 void mailbox_notify_changes(struct mailbox *box, unsigned int min_interval,
 			    mailbox_notify_callback_t *callback, void *context)
--- a/src/lib-storage/mail-storage.h	Sat Sep 22 16:15:12 2007 +0300
+++ b/src/lib-storage/mail-storage.h	Sat Sep 22 16:21:09 2007 +0300
@@ -291,6 +291,11 @@
 int mailbox_sync_deinit(struct mailbox_sync_context **ctx,
 			enum mailbox_status_items status_items,
 			struct mailbox_status *status_r);
+/* One-step mailbox synchronization. Use this if you don't care about
+   changes. */
+int mailbox_sync(struct mailbox *box, enum mailbox_sync_flags flags,
+		 enum mailbox_status_items status_items,
+		 struct mailbox_status *status_r);
 
 /* Call given callback function when something changes in the mailbox. */
 void mailbox_notify_changes(struct mailbox *box, unsigned int min_interval,