aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-filter-driver.c
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2001-07-13 23:06:14 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2001-07-13 23:06:14 +0800
commitf2757356ba1c41da816b4e524b54846c16652ada (patch)
treef48951dbce6f1e330ac25b55e8c038737803cff7 /camel/camel-filter-driver.c
parent2673cf170b9fcd1e51cddd195b81d5d2ea3928ea (diff)
downloadgsoc2013-evolution-f2757356ba1c41da816b4e524b54846c16652ada.tar
gsoc2013-evolution-f2757356ba1c41da816b4e524b54846c16652ada.tar.gz
gsoc2013-evolution-f2757356ba1c41da816b4e524b54846c16652ada.tar.bz2
gsoc2013-evolution-f2757356ba1c41da816b4e524b54846c16652ada.tar.lz
gsoc2013-evolution-f2757356ba1c41da816b4e524b54846c16652ada.tar.xz
gsoc2013-evolution-f2757356ba1c41da816b4e524b54846c16652ada.tar.zst
gsoc2013-evolution-f2757356ba1c41da816b4e524b54846c16652ada.zip
We now use a structure as the bucket data rather than just a cache level
2001-07-13 Jeffrey Stedfast <fejj@ximian.com> * camel-uid-cache.c (camel_uid_cache_new): We now use a structure as the bucket data rather than just a cache level so set the save state to TRUE. (maybe_write_uid): We only save the uid if the cache levels are the same *and* if the save state is TRUE. (free_uid): Free the state value. (camel_uid_cache_get_new_uids): New uids that get added to the cache start with a save state of FALSE. (camel_uid_cache_save_uid): Set the save state of the uid to TRUE. What should we do if the uid isn't already in the cache? Currently I make it add the uid, but maybe it shouldn't? * providers/imap/camel-imap-folder.c (imap_filter_timeout): Update to reflect CamelFilterDriver API changes. * camel-filter-driver.c (camel_filter_driver_filter_folder): Take a cache argument so we can tell the cache whether or not the uid should be saved (meaning we have successfully filtered it). svn path=/trunk/; revision=11084
Diffstat (limited to 'camel/camel-filter-driver.c')
-rw-r--r--camel/camel-filter-driver.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/camel/camel-filter-driver.c b/camel/camel-filter-driver.c
index 6ecc4bffc0..c77c2d90b2 100644
--- a/camel/camel-filter-driver.c
+++ b/camel/camel-filter-driver.c
@@ -712,6 +712,7 @@ fail:
* camel_filter_driver_filter_folder:
* @driver: CamelFilterDriver
* @folder: CamelFolder to be filtered
+ * @cache: UID cache (needed for POP folders)
* @uids: message uids to be filtered or NULL (as a shortcut to filter all messages)
* @remove: TRUE to mark filtered messages as deleted
* @ex: exception
@@ -724,7 +725,7 @@ fail:
*
**/
int
-camel_filter_driver_filter_folder (CamelFilterDriver *driver, CamelFolder *folder,
+camel_filter_driver_filter_folder (CamelFilterDriver *driver, CamelFolder *folder, CamelUIDCache *cache,
GPtrArray *uids, gboolean remove, CamelException *ex)
{
struct _CamelFilterDriverPrivate *p = _PRIVATE (driver);
@@ -793,6 +794,9 @@ camel_filter_driver_filter_folder (CamelFilterDriver *driver, CamelFolder *folde
CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN,
CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN);
+ if (cache)
+ camel_uid_cache_save_uid (cache, uids->pdata[i]);
+
camel_object_unref (CAMEL_OBJECT (message));
}