aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/imap
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2001-06-16 02:47:04 +0800
committerDan Winship <danw@src.gnome.org>2001-06-16 02:47:04 +0800
commitb0bac93a1ef3963c1d432a06015e09e1042208d0 (patch)
treec04df77b5a732b8860cfa19a27fcd96144aa47a9 /camel/providers/imap
parentd90fbb36059b624936bb7a795fe22a32d66163bd (diff)
downloadgsoc2013-evolution-b0bac93a1ef3963c1d432a06015e09e1042208d0.tar
gsoc2013-evolution-b0bac93a1ef3963c1d432a06015e09e1042208d0.tar.gz
gsoc2013-evolution-b0bac93a1ef3963c1d432a06015e09e1042208d0.tar.bz2
gsoc2013-evolution-b0bac93a1ef3963c1d432a06015e09e1042208d0.tar.lz
gsoc2013-evolution-b0bac93a1ef3963c1d432a06015e09e1042208d0.tar.xz
gsoc2013-evolution-b0bac93a1ef3963c1d432a06015e09e1042208d0.tar.zst
gsoc2013-evolution-b0bac93a1ef3963c1d432a06015e09e1042208d0.zip
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
Diffstat (limited to 'camel/providers/imap')
-rw-r--r--camel/providers/imap/camel-imap-message-cache.c16
-rw-r--r--camel/providers/imap/camel-imap-message-cache.h3
2 files changed, 19 insertions, 0 deletions
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,