aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/imap/camel-imap-message-cache.h
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2001-05-01 22:51:36 +0800
committerDan Winship <danw@src.gnome.org>2001-05-01 22:51:36 +0800
commiteb7438182ab5fd969aac96795f67034e21937e35 (patch)
treeaa136f16d6be288b7623cb66a16d260944e61557 /camel/providers/imap/camel-imap-message-cache.h
parentc757cacd08d3650309783172c2dedc0d20092634 (diff)
downloadgsoc2013-evolution-eb7438182ab5fd969aac96795f67034e21937e35.tar
gsoc2013-evolution-eb7438182ab5fd969aac96795f67034e21937e35.tar.gz
gsoc2013-evolution-eb7438182ab5fd969aac96795f67034e21937e35.tar.bz2
gsoc2013-evolution-eb7438182ab5fd969aac96795f67034e21937e35.tar.lz
gsoc2013-evolution-eb7438182ab5fd969aac96795f67034e21937e35.tar.xz
gsoc2013-evolution-eb7438182ab5fd969aac96795f67034e21937e35.tar.zst
gsoc2013-evolution-eb7438182ab5fd969aac96795f67034e21937e35.zip
Support the IMAP UIDPLUS extension (RFC 2359), which lets you
resync after disconnected operation more efficiently, but also makes it possible to do appends and moves/copies more efficiently now. * providers/imap/camel-imap-folder.c (imap_append_message): If the server supports UIDPLUS, grab the APPENDUID response and cache the message into the folder's message cache. (imap_copy_messages_to): Likewise, for COPYUID, copy any message parts we have cached between the source and destination folder caches. (imap_get_message): If the entire message is already in the cache, just return that rather than building it from parts. (imap_update_summary): Fetch just the "UID FLAGS RFC822.SIZE" of the new messages first, then only fetch the headers for messages where we don't already have the headers cached. * providers/imap/camel-imap-message-cache.c: Add gtk-doc comments. (cache_put): Fix refcounting stuff here. (camel_imap_message_cache_insert_stream, camel_imap_message_cache_insert_wrapper): New. (camel_imap_message_cache_get): Fix a bug here so the memory caching actually works. (camel_imap_message_cache_copy): New routine, used by imap_copy_messages_to. * providers/imap/camel-imap-utils.c (imap_uid_set_to_array): Inverse operation of imap_uid_array_to_set. Used to parse COPYUID response. svn path=/trunk/; revision=9635
Diffstat (limited to 'camel/providers/imap/camel-imap-message-cache.h')
-rw-r--r--camel/providers/imap/camel-imap-message-cache.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/camel/providers/imap/camel-imap-message-cache.h b/camel/providers/imap/camel-imap-message-cache.h
index 66e3adbaaa..c9af369a56 100644
--- a/camel/providers/imap/camel-imap-message-cache.h
+++ b/camel/providers/imap/camel-imap-message-cache.h
@@ -68,6 +68,15 @@ CamelStream *camel_imap_message_cache_insert (CamelImapMessageCache *cache,
const char *part_spec,
const char *data,
int len);
+void camel_imap_message_cache_insert_stream (CamelImapMessageCache *cache,
+ const char *uid,
+ const char *part_spec,
+ CamelStream *data_stream);
+void camel_imap_message_cache_insert_wrapper (CamelImapMessageCache *cache,
+ const char *uid,
+ const char *part_spec,
+ CamelDataWrapper *wrapper);
+
CamelStream *camel_imap_message_cache_get (CamelImapMessageCache *cache,
const char *uid,
const char *part_spec);
@@ -76,6 +85,11 @@ void camel_imap_message_cache_remove (CamelImapMessageCache *cache,
void camel_imap_message_cache_clear (CamelImapMessageCache *cache);
+void camel_imap_message_cache_copy (CamelImapMessageCache *source,
+ const char *source_uid,
+ CamelImapMessageCache *dest,
+ const char *dest_uid);
+
/* Standard Camel function */
CamelType camel_imap_message_cache_get_type (void);