changeset 7875:8ded6c06bcfc HEAD

Changed mail index view syncing API to return only flag changes. Currently it has only a single caller and it's not interested in anything else.
author Timo Sirainen <tss@iki.fi>
date Tue, 17 Jun 2008 10:43:16 +0300
parents 650330db2f99
children 94fe6f7747da
files src/lib-index/mail-index-view-sync.c src/lib-index/mail-index.h src/lib-storage/index/index-sync.c
diffstat 3 files changed, 12 insertions(+), 42 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index-view-sync.c	Tue Jun 17 10:25:55 2008 +0300
+++ b/src/lib-index/mail-index-view-sync.c	Tue Jun 17 10:43:16 2008 +0300
@@ -509,31 +509,6 @@
 	const void *data = ctx->data;
 
 	switch (hdr->type & MAIL_TRANSACTION_TYPE_MASK) {
-	case MAIL_TRANSACTION_APPEND: {
-		/* data contains the appended records, but we don't care */
-		rec->type = MAIL_INDEX_SYNC_TYPE_APPEND;
-		rec->uid1 = rec->uid2 = 0;
-		ctx->data_offset += hdr->size;
-		break;
-	}
-	case MAIL_TRANSACTION_EXPUNGE: {
-		const struct mail_transaction_expunge *exp =
-			CONST_PTR_OFFSET(data, ctx->data_offset);
-
-		if ((hdr->type & MAIL_TRANSACTION_EXTERNAL) == 0) {
-			/* this is simply a request for expunge */
-			ctx->data_offset = ctx->hdr->size;
-			return 0;
-		}
-
-		/* data contains mail_transaction_expunge[] */
-		rec->type = MAIL_INDEX_SYNC_TYPE_EXPUNGE;
-		rec->uid1 = exp->uid1;
-		rec->uid2 = exp->uid2;
-
-		ctx->data_offset += sizeof(*exp);
-		break;
-	}
 	case MAIL_TRANSACTION_FLAG_UPDATE: {
 		const struct mail_transaction_flag_update *update =
 			CONST_PTR_OFFSET(data, ctx->data_offset);
@@ -551,7 +526,7 @@
 			update = CONST_PTR_OFFSET(data, ctx->data_offset);
 		}
 
-		rec->type = MAIL_INDEX_SYNC_TYPE_FLAGS;
+		rec->type = MAIL_INDEX_VIEW_SYNC_TYPE_FLAGS;
 		rec->uid1 = update->uid1;
 		rec->uid2 = update->uid2;
 		break;
@@ -571,7 +546,7 @@
 		}
 
 		uids = CONST_PTR_OFFSET(data, ctx->data_offset);
-		rec->type = MAIL_INDEX_SYNC_TYPE_KEYWORD_ADD;
+		rec->type = MAIL_INDEX_VIEW_SYNC_TYPE_FLAGS;
 		rec->uid1 = uids[0];
 		rec->uid2 = uids[1];
 
@@ -583,7 +558,7 @@
 			CONST_PTR_OFFSET(data, ctx->data_offset);
 
 		/* data contains mail_transaction_keyword_reset[] */
-		rec->type = MAIL_INDEX_SYNC_TYPE_KEYWORD_RESET;
+		rec->type = MAIL_INDEX_VIEW_SYNC_TYPE_FLAGS;
 		rec->uid1 = reset->uid1;
 		rec->uid2 = reset->uid2;
 		ctx->data_offset += sizeof(*reset);
--- a/src/lib-index/mail-index.h	Tue Jun 17 10:25:55 2008 +0300
+++ b/src/lib-index/mail-index.h	Tue Jun 17 10:43:16 2008 +0300
@@ -157,11 +157,14 @@
 	unsigned int keyword_idx;
 };
 
+enum mail_index_view_sync_type {
+	/* Flags or keywords changed */
+	MAIL_INDEX_VIEW_SYNC_TYPE_FLAGS		= 0x01
+};
+
 struct mail_index_view_sync_rec {
 	uint32_t uid1, uid2;
-	/* keyword appends and removes are packed into one and same
-	   MAIL_INDEX_SYNC_TYPE_KEYWORD_ADD */
-	enum mail_index_sync_type type;
+	enum mail_index_view_sync_type type;
 
 	/* TRUE if this was a hidden transaction. */
 	unsigned int hidden:1;
--- a/src/lib-storage/index/index-sync.c	Tue Jun 17 10:25:55 2008 +0300
+++ b/src/lib-storage/index/index-sync.c	Tue Jun 17 10:43:16 2008 +0300
@@ -112,18 +112,10 @@
 		i_array_init(&ctx->modseq_updates, 32);
 	while (mail_index_view_sync_next(ctx->sync_ctx, &sync_rec)) {
 		switch (sync_rec.type) {
-		case MAIL_INDEX_SYNC_TYPE_APPEND:
-			/* not interested */
-			break;
-		case MAIL_INDEX_SYNC_TYPE_EXPUNGE:
-			/* later */
-			break;
-		case MAIL_INDEX_SYNC_TYPE_FLAGS:
-		case MAIL_INDEX_SYNC_TYPE_KEYWORD_ADD:
-		case MAIL_INDEX_SYNC_TYPE_KEYWORD_REMOVE:
-		case MAIL_INDEX_SYNC_TYPE_KEYWORD_RESET:
+		case MAIL_INDEX_VIEW_SYNC_TYPE_FLAGS:
 			if (!mail_index_lookup_seq_range(ctx->ibox->view,
-							 sync_rec.uid1, sync_rec.uid2,
+							 sync_rec.uid1,
+							 sync_rec.uid2,
 							 &seq1, &seq2))
 				break;