aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-store.h
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2000-10-03 03:08:20 +0800
committerDan Winship <danw@src.gnome.org>2000-10-03 03:08:20 +0800
commite9dc30dbf0c018bbc845f253bfe0b26baddbeaf2 (patch)
treee70ca64851c0167f959a9e6c0c38179cd0de102b /camel/camel-store.h
parent46d07e9e465e336a5c39d8c27c846cb380fbc6fb (diff)
downloadgsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.tar
gsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.tar.gz
gsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.tar.bz2
gsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.tar.lz
gsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.tar.xz
gsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.tar.zst
gsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.zip
Remove camel_folder_{get,free}_subfolder_info, as we want to be able to
* camel-folder.[ch]: Remove camel_folder_{get,free}_subfolder_info, as we want to be able to scan the whole subfolder tree without having to open any folders, so this needs to be in CamelStore. Remove can_hold_folders and can_hold_messages flags; things that don't hold messages are no longer considered CamelFolders. * camel-folder-summary.[ch]: Remove CamelFolderInfo stuff. * camel-store.[ch]: Add camel_store_{get,free}_folder_info, as well as camel_store_free_folder_info_full and ..._nop for default implementations, and camel_folder_info_free and camel_folder_info_build as convenience functions. Turn CamelFolderInfo into a tree structure and also add an "url" member. * providers/*/camel-*-folder.c: Remove subfolder_info and can_hold stuff. * providers/*/camel-*-store.c: Add folder_info stuff. * providers/imap/camel-imap-folder.c (imap_summary_free): Free the summary elements with camel_message_info_free, not camel_folder_info_free. Oops. * providers/imap/camel-imap-utils.c: const poison svn path=/trunk/; revision=5663
Diffstat (limited to 'camel/camel-store.h')
-rw-r--r--camel/camel-store.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/camel/camel-store.h b/camel/camel-store.h
index 1ba2ff9869..07ee939c6f 100644
--- a/camel/camel-store.h
+++ b/camel/camel-store.h
@@ -37,6 +37,14 @@ extern "C" {
#include <camel/camel-object.h>
#include <camel/camel-service.h>
+
+typedef struct _CamelFolderInfo {
+ struct _CamelFolderInfo *sibling, *child;
+ char *url, *full_name, *name;
+ int message_count, unread_message_count;
+} CamelFolderInfo;
+
+
#define CAMEL_STORE_TYPE (camel_store_get_type ())
#define CAMEL_STORE(obj) (CAMEL_CHECK_CAST((obj), CAMEL_STORE_TYPE, CamelStore))
#define CAMEL_STORE_CLASS(k) (CAMEL_CHECK_CLASS_CAST ((k), CAMEL_STORE_TYPE, CamelStoreClass))
@@ -84,6 +92,14 @@ typedef struct {
void (*uncache_folder) (CamelStore *store,
CamelFolder *folder);
+ CamelFolderInfo *(*get_folder_info) (CamelStore *store,
+ const char *top,
+ gboolean fase,
+ gboolean recursive,
+ CamelException *ex);
+ void (*free_folder_info) (CamelStore *store,
+ CamelFolderInfo *fi);
+
} CamelStoreClass;
@@ -108,6 +124,26 @@ void camel_store_rename_folder (CamelStore *store,
const char *new_name,
CamelException *ex);
+CamelFolderInfo *camel_store_get_folder_info (CamelStore *store,
+ const char *top,
+ gboolean fase,
+ gboolean recursive,
+ CamelException *ex);
+void camel_store_free_folder_info (CamelStore *store,
+ CamelFolderInfo *fi);
+
+
+void camel_store_free_folder_info_full (CamelStore *store,
+ CamelFolderInfo *fi);
+void camel_store_free_folder_info_nop (CamelStore *store,
+ CamelFolderInfo *fi);
+
+void camel_folder_info_free (CamelFolderInfo *fi);
+void camel_folder_info_build (GPtrArray *folders,
+ CamelFolderInfo *top,
+ char separator,
+ gboolean short_names);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */