aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-storage.h
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2000-06-08 01:01:52 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2000-06-08 01:01:52 +0800
commite7971bb4f5f1d262a3f3af99f81c221a724131da (patch)
tree9a27ea0d6eeda598771c40bea1b896a58d0bbe0f /shell/e-storage.h
parent6aac85ab5b50dc9e3cc454c37858755a564120c3 (diff)
downloadgsoc2013-evolution-e7971bb4f5f1d262a3f3af99f81c221a724131da.tar.gz
gsoc2013-evolution-e7971bb4f5f1d262a3f3af99f81c221a724131da.tar.zst
gsoc2013-evolution-e7971bb4f5f1d262a3f3af99f81c221a724131da.zip
Fixed a refcount leak and added interfaces to add/remove folders
from an EStorage (although they are not implemented yet). svn path=/trunk/; revision=3460
Diffstat (limited to 'shell/e-storage.h')
-rw-r--r--shell/e-storage.h64
1 files changed, 48 insertions, 16 deletions
diff --git a/shell/e-storage.h b/shell/e-storage.h
index 478feef5a6..b144d0af5a 100644
--- a/shell/e-storage.h
+++ b/shell/e-storage.h
@@ -46,6 +46,18 @@ typedef struct _EStorage EStorage;
typedef struct _EStoragePrivate EStoragePrivate;
typedef struct _EStorageClass EStorageClass;
+enum _EStorageResult {
+ E_STORAGE_OK,
+ E_STORAGE_NOTIMPLEMENTED,
+ E_STORAGE_NOTFOUND,
+ E_STORAGE_EXISTS,
+ E_STORAGE_IO,
+ E_STORAGE_UNSUPPORTEDTYPE
+};
+typedef enum _EStorageResult EStorageResult;
+
+typedef void (* EStorageResultCallback) (EStorage *storage, EStorageResult result, void *data);
+
#include "e-folder.h"
struct _EStorage {
@@ -58,31 +70,51 @@ struct _EStorageClass {
GtkObjectClass parent_class;
/* Signals. */
+
void * (* new_folder) (EStorage *storage, const char *path);
void * (* removed_folder) (EStorage *storage, const char *path);
/* Virtual methods. */
- GList * (* list_folders) (EStorage *storage, const char *path);
- EFolder * (* get_folder) (EStorage *storage, const char *path);
- const char * (* get_name) (EStorage *storage);
-};
-
-GtkType e_storage_get_type (void);
-void e_storage_construct (EStorage *storage);
-EStorage *e_storage_new (void);
-
-gboolean e_storage_path_is_relative (const char *path);
-gboolean e_storage_path_is_absolute (const char *path);
+ GList * (* list_folders) (EStorage *storage, const char *path);
+ EFolder * (* get_folder) (EStorage *storage, const char *path);
+ const char * (* get_name) (EStorage *storage);
-GList *e_storage_list_folders (EStorage *storage, const char *path);
-EFolder *e_storage_get_folder (EStorage *storage, const char *path);
+ void (* create_folder) (EStorage *storage, const char *path,
+ const char *type, const char *description,
+ EStorageResultCallback callback, void *data);
+ void (* remove_folder) (EStorage *storage, const char *path,
+ EStorageResultCallback callback, void *data);
+};
-const char *e_storage_get_name (EStorage *storage);
+
+GtkType e_storage_get_type (void);
+void e_storage_construct (EStorage *storage);
+EStorage *e_storage_new (void);
+gboolean e_storage_path_is_relative (const char *path);
+gboolean e_storage_path_is_absolute (const char *path);
+
+GList *e_storage_list_folders (EStorage *storage, const char *path);
+EFolder *e_storage_get_folder (EStorage *storage, const char *path);
+
+const char *e_storage_get_name (EStorage *storage);
+
+/* Folder operations. */
+
+void e_storage_create_folder (EStorage *storage,
+ const char *path,
+ const char *type,
+ const char *description,
+ EStorageResultCallback callback,
+ void *data);
+void e_storage_remove_folder (EStorage *storage,
+ const char *path,
+ EStorageResultCallback callback,
+ void *data);
/* Protected. C++ anyone? */
-gboolean e_storage_new_folder (EStorage *storage, const char *path, EFolder *folder);
-gboolean e_storage_remove_folder (EStorage *storage, const char *path);
+gboolean e_storage_new_folder (EStorage *storage, const char *path, EFolder *folder);
+gboolean e_storage_removed_folder (EStorage *storage, const char *path);
#ifdef __cplusplus
}