changeset 3461:b7ce2532250a HEAD

Added mail_cache_register_get_list() to get a list of all registered fields in cache file.
author Timo Sirainen <tss@iki.fi>
date Sun, 03 Jul 2005 18:09:16 +0300
parents e8cbf3ae00db
children 19daba35107a
files src/lib-index/mail-cache-fields.c src/lib-index/mail-cache.h
diffstat 2 files changed, 19 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-cache-fields.c	Sun Jul 03 17:18:53 2005 +0300
+++ b/src/lib-index/mail-cache-fields.c	Sun Jul 03 18:09:16 2005 +0300
@@ -85,6 +85,21 @@
 		return (unsigned int)-1;
 }
 
+const struct mail_cache_field *
+mail_cache_register_get_list(struct mail_cache *cache, pool_t pool,
+			     unsigned int *count_r)
+{
+        struct mail_cache_field *list;
+	unsigned int i;
+
+	list = p_new(pool, struct mail_cache_field, cache->fields_count);
+	for (i = 0; i < cache->fields_count; i++)
+		list[i] = cache->fields[i].field;
+
+	*count_r = cache->fields_count;
+	return list;
+}
+
 static int mail_cache_header_fields_get_offset(struct mail_cache *cache,
 					       uint32_t *offset_r)
 {
--- a/src/lib-index/mail-cache.h	Sun Jul 03 17:18:53 2005 +0300
+++ b/src/lib-index/mail-cache.h	Sun Jul 03 18:09:16 2005 +0300
@@ -49,6 +49,10 @@
 /* Returns registered field index, or (unsigned int)-1 if not found. */
 unsigned int
 mail_cache_register_lookup(struct mail_cache *cache, const char *name);
+/* Returns a list of all registered fields */
+const struct mail_cache_field *
+mail_cache_register_get_list(struct mail_cache *cache, pool_t pool,
+			     unsigned int *count_r);
 
 /* Returns TRUE if cache should be compressed. */
 int mail_cache_need_compress(struct mail_cache *cache);