From b0bac93a1ef3963c1d432a06015e09e1042208d0 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Fri, 15 Jun 2001 18:47:04 +0000 Subject: Return the largest real UID in the cache (as an integer). Eventually to be * providers/imap/camel-imap-message-cache.c (camel_imap_message_cache_max_uid): Return the largest real UID in the cache (as an integer). Eventually to be used for an optimization in the new-message fetch code. (cache_put): Keep track of max_uid. svn path=/trunk/; revision=10254 --- camel/providers/imap/camel-imap-message-cache.c | 16 ++++++++++++++++ camel/providers/imap/camel-imap-message-cache.h | 3 +++ 2 files changed, 19 insertions(+) (limited to 'camel/providers/imap') diff --git a/camel/providers/imap/camel-imap-message-cache.c b/camel/providers/imap/camel-imap-message-cache.c index 4b9b97789f..2f811eea47 100644 --- a/camel/providers/imap/camel-imap-message-cache.c +++ b/camel/providers/imap/camel-imap-message-cache.c @@ -94,6 +94,11 @@ cache_put (CamelImapMessageCache *cache, const char *uid, const char *key, char *hash_key; GPtrArray *subparts; gpointer okey, ostream; + guint32 uidval; + + uidval = strtoul (uid, NULL, 10); + if (uidval > cache->max_uid) + cache->max_uid = uidval; subparts = g_hash_table_lookup (cache->parts, uid); if (!subparts) { @@ -193,6 +198,17 @@ camel_imap_message_cache_new (const char *path, CamelFolderSummary *summary, return cache; } +/** + * camel_imap_message_cache_max_uid: + * @cache: the cache + * + * Return value: the largest (real) UID in the cache. + **/ +guint32 +camel_imap_message_cache_max_uid (CamelImapMessageCache *cache) +{ + return cache->max_uid; +} static void stream_finalize (CamelObject *stream, gpointer event_data, gpointer user_data) diff --git a/camel/providers/imap/camel-imap-message-cache.h b/camel/providers/imap/camel-imap-message-cache.h index c9af369a56..6ddf7339c7 100644 --- a/camel/providers/imap/camel-imap-message-cache.h +++ b/camel/providers/imap/camel-imap-message-cache.h @@ -47,6 +47,7 @@ struct _CamelImapMessageCache { char *path; GHashTable *parts, *cached; + guint32 max_uid; }; @@ -63,6 +64,8 @@ CamelImapMessageCache *camel_imap_message_cache_new (const char *path, CamelFolderSummary *summ, CamelException *ex); +guint32 camel_imap_message_cache_max_uid (CamelImapMessageCache *cache); + CamelStream *camel_imap_message_cache_insert (CamelImapMessageCache *cache, const char *uid, const char *part_spec, -- cgit