[dovecot-cvs] dovecot/src/lib-index mail-index-sync-private.h, 1.26, 1.27 mail-index-sync.c, 1.63, 1.64 mail-index-view-sync.c, 1.45, 1.46 mail-index.h, 1.153, 1.154

cras at dovecot.org cras at dovecot.org
Fri Jan 6 19:37:33 EET 2006


Update of /var/lib/cvs/dovecot/src/lib-index
In directory talvi:/tmp/cvs-serv25870/lib-index

Modified Files:
	mail-index-sync-private.h mail-index-sync.c 
	mail-index-view-sync.c mail-index.h 
Log Message:
Changed mail_index_view_sync_next() to return struct
mail_index_view_sync_rec records which only contain the type and UID range.
Makes it clearer that the caller won't get anything else, and flag updates
now don't need to update add_flags/remove_flags fields.



Index: mail-index-sync-private.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-index/mail-index-sync-private.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- mail-index-sync-private.h	2 Apr 2005 21:09:03 -0000	1.26
+++ mail-index-sync-private.h	6 Jan 2006 17:37:30 -0000	1.27
@@ -70,13 +70,6 @@
 void mail_index_sync_replace_map(struct mail_index_sync_map_ctx *ctx,
 				 struct mail_index_map *map);
 
-void
-mail_index_sync_get_expunge(struct mail_index_sync_rec *rec,
-			    const struct mail_transaction_expunge *exp);
-void
-mail_index_sync_get_update(struct mail_index_sync_rec *rec,
-			   const struct mail_transaction_flag_update *update);
-
 void mail_index_sync_init_expunge_handlers(struct mail_index_sync_map_ctx *ctx);
 void
 mail_index_sync_deinit_expunge_handlers(struct mail_index_sync_map_ctx *ctx);

Index: mail-index-sync.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-index/mail-index-sync.c,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -d -r1.63 -r1.64
--- mail-index-sync.c	21 Dec 2005 18:37:23 -0000	1.63
+++ mail-index-sync.c	6 Jan 2006 17:37:30 -0000	1.64
@@ -430,7 +430,7 @@
 	return 1;
 }
 
-void
+static void
 mail_index_sync_get_expunge(struct mail_index_sync_rec *rec,
 			    const struct mail_transaction_expunge *exp)
 {
@@ -439,7 +439,7 @@
 	rec->uid2 = exp->uid2;
 }
 
-void
+static void
 mail_index_sync_get_update(struct mail_index_sync_rec *rec,
 			   const struct mail_transaction_flag_update *update)
 {

Index: mail-index-view-sync.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-index/mail-index-view-sync.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- mail-index-view-sync.c	6 Jan 2006 17:30:26 -0000	1.45
+++ mail-index-view-sync.c	6 Jan 2006 17:37:30 -0000	1.46
@@ -365,7 +365,7 @@
 
 static int
 mail_index_view_sync_get_rec(struct mail_index_view_sync_ctx *ctx,
-			     struct mail_index_sync_rec *rec)
+			     struct mail_index_view_sync_rec *rec)
 {
 	const struct mail_transaction_header *hdr = ctx->hdr;
 	const void *data = ctx->data;
@@ -383,8 +383,11 @@
 			CONST_PTR_OFFSET(data, ctx->data_offset);
 
 		/* 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);
-                mail_index_sync_get_expunge(rec, exp);
 		break;
 	}
 	case MAIL_TRANSACTION_FLAG_UPDATE: {
@@ -403,7 +406,10 @@
 
 			update = CONST_PTR_OFFSET(data, ctx->data_offset);
 		}
-                mail_index_sync_get_update(rec, update);
+
+		rec->type = MAIL_INDEX_SYNC_TYPE_FLAGS;
+		rec->uid1 = update->uid1;
+		rec->uid2 = update->uid2;
 		break;
 	}
 	case MAIL_TRANSACTION_KEYWORD_UPDATE: {
@@ -421,9 +427,6 @@
 		}
 
 		uids = CONST_PTR_OFFSET(data, ctx->data_offset);
-		/* FIXME: rec->keyword_idx isn't set, but no-one cares
-		   currently. perhaps the whole view syncing API should just
-		   be returning type and uid range.. */
 		rec->type = MAIL_INDEX_SYNC_TYPE_KEYWORD_ADD;
 		rec->uid1 = uids[0];
 		rec->uid2 = uids[1];
@@ -449,7 +452,7 @@
 }
 
 int mail_index_view_sync_next(struct mail_index_view_sync_ctx *ctx,
-			      struct mail_index_sync_rec *sync_rec)
+			      struct mail_index_view_sync_rec *sync_rec)
 {
 	int ret;
 

Index: mail-index.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-index/mail-index.h,v
retrieving revision 1.153
retrieving revision 1.154
diff -u -d -r1.153 -r1.154
--- mail-index.h	6 Jan 2006 17:30:26 -0000	1.153
+++ mail-index.h	6 Jan 2006 17:37:30 -0000	1.154
@@ -135,6 +135,13 @@
 	unsigned int keyword_idx;
 };
 
+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;
+};
+
 struct mail_index;
 struct mail_index_map;
 struct mail_index_view;
@@ -254,7 +261,7 @@
 			       struct mail_index_view_sync_ctx **ctx_r);
 /* Returns -1 if error, 0 if sync is finished, 1 if record was filled. */
 int mail_index_view_sync_next(struct mail_index_view_sync_ctx *ctx,
-			      struct mail_index_sync_rec *sync_rec);
+			      struct mail_index_view_sync_rec *sync_rec);
 const uint32_t *
 mail_index_view_sync_get_expunges(struct mail_index_view_sync_ctx *ctx,
 				 unsigned int *count_r);



More information about the dovecot-cvs mailing list