diff options
author | Dan Winship <danw@src.gnome.org> | 2001-05-01 22:51:36 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-05-01 22:51:36 +0800 |
commit | eb7438182ab5fd969aac96795f67034e21937e35 (patch) | |
tree | aa136f16d6be288b7623cb66a16d260944e61557 /camel/providers/imap/camel-imap-message-cache.h | |
parent | c757cacd08d3650309783172c2dedc0d20092634 (diff) | |
download | gsoc2013-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.h | 14 |
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); |