diff src/lib-storage/list/index-mailbox-list.h @ 12645:d3d5f104ca40

lib-storage: Mailbox list indexes now refresh the index on create/delete/rename.
author Timo Sirainen <tss@iki.fi>
date Tue, 08 Feb 2011 22:54:14 +0200
parents ad002fdc6a6c
children 0cadba9597cb
line wrap: on
line diff
--- a/src/lib-storage/list/index-mailbox-list.h	Tue Feb 08 22:18:14 2011 +0200
+++ b/src/lib-storage/list/index-mailbox-list.h	Tue Feb 08 22:54:14 2011 +0200
@@ -19,6 +19,11 @@
 	MAILBOX_LIST_INDEX_FLAG_MARKED
 };
 
+struct mailbox_list_index_header {
+	uint8_t refresh_flag;
+	/* array of { uint32_t id; char name[]; } */
+};
+
 struct mailbox_list_index_record {
 	/* points to given id in header */
 	uint32_t name_id;
@@ -68,11 +73,11 @@
 	uint32_t sync_log_file_seq;
 	uoff_t sync_log_file_offset;
 
+	uint32_t sync_stamp;
+
 	/* uint32_t uid => struct index_mailbox_node* */
 	struct hash_table *mailbox_hash;
 	struct index_mailbox_node *mailbox_tree;
-
-	unsigned int force_refresh:1;
 };
 
 struct index_mailbox_list_iterate_context {
@@ -95,6 +100,7 @@
 index_mailbox_list_lookup(struct mailbox_list *list, const char *vname);
 
 int index_mailbox_list_refresh(struct mailbox_list *list);
+void index_mailbox_list_refresh_later(struct mailbox_list *list);
 
 void index_mailbox_list_status_init(void);
 void index_mailbox_list_status_init_list(struct mailbox_list *list);