aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-folder.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-folder.c')
-rw-r--r--camel/camel-folder.c199
1 files changed, 151 insertions, 48 deletions
diff --git a/camel/camel-folder.c b/camel/camel-folder.c
index 5d460de236..5e3bd1265c 100644
--- a/camel/camel-folder.c
+++ b/camel/camel-folder.c
@@ -29,21 +29,24 @@ static GtkObjectClass *parent_class=NULL;
/* Returns the class for a CamelFolder */
#define CF_CLASS(so) CAMEL_FOLDER_CLASS (GTK_OBJECT(so)->klass)
-static void camel_folder_init_with_store(CamelFolder *folder, CamelStore *parent_store);
-static void camel_folder_open(CamelFolder *folder);
-static void camel_folder_close(CamelFolder *folder, gboolean expunge);
-static void camel_folder_set_name(CamelFolder *folder, GString *name_);
-static void camel_folder_set_full_name(CamelFolder *folder, GString *name);
-static GString *camel_folder_get_name(CamelFolder *folder);
-static GString *camel_folder_get_full_name(CamelFolder *folder);
-static gboolean camel_folder_can_hold_folders(CamelFolder *folder);
-static gboolean camel_folder_can_hold_messages(CamelFolder *folder);
-static gboolean camel_folder_exists(CamelFolder *folder);
-static gboolean camel_folder_is_open(CamelFolder *folder);
-static CamelFolder *camel_folder_get_folder(CamelFolder *folder, GString *folder_name);
+static void __camel_folder_init_with_store(CamelFolder *folder, CamelStore *parent_store);
+static void __camel_folder_open(CamelFolder *folder, CamelFolderOpenMode mode);
+static void __camel_folder_close(CamelFolder *folder, gboolean expunge);
+static void __camel_folder_set_name(CamelFolder *folder, GString *name_);
+static void __camel_folder_set_full_name(CamelFolder *folder, GString *name);
+static GString *__camel_folder_get_name(CamelFolder *folder);
+static GString *__camel_folder_get_full_name(CamelFolder *folder);
+static gboolean __camel_folder_can_hold_folders(CamelFolder *folder);
+static gboolean __camel_folder_can_hold_messages(CamelFolder *folder);
+static gboolean __camel_folder_exists(CamelFolder *folder);
+static gboolean __camel_folder_is_open(CamelFolder *folder);
+static CamelFolder *__camel_folder_get_folder(CamelFolder *folder, GString *folder_name);
static gboolean __camel_folder_create(CamelFolder *folder);
static gboolean __camel_folder_delete (CamelFolder *folder, gboolean recurse);
static gboolean __camel_folder_delete_messages(CamelFolder *folder);
+static CamelFolder *__camel_folder_get_parent_folder (CamelFolder *folder);
+static CamelStore *__camel_folder_get_parent_store (CamelFolder *folder);
+static CamelFolderOpenMode __camel_folder_get_mode(CamelFolder *folder);
static void
camel_folder_class_init (CamelFolderClass *camel_folder_class)
@@ -51,19 +54,23 @@ camel_folder_class_init (CamelFolderClass *camel_folder_class)
parent_class = gtk_type_class (gtk_object_get_type ());
/* virtual method definition */
- camel_folder_class->init_with_store = camel_folder_init_with_store;
- camel_folder_class->open = camel_folder_open;
- camel_folder_class->close = camel_folder_close;
- camel_folder_class->set_name = camel_folder_set_name;
- camel_folder_class->get_name = camel_folder_get_name;
- camel_folder_class->can_hold_folders = camel_folder_can_hold_folders;
- camel_folder_class->can_hold_messages = camel_folder_can_hold_messages;
- camel_folder_class->exists = camel_folder_exists;
- camel_folder_class->is_open = camel_folder_is_open;
- camel_folder_class->get_folder = camel_folder_get_folder;
+ camel_folder_class->init_with_store = __camel_folder_init_with_store;
+ camel_folder_class->open = __camel_folder_open;
+ camel_folder_class->close = __camel_folder_close;
+ camel_folder_class->set_name = __camel_folder_set_name;
+ camel_folder_class->get_name = __camel_folder_get_name;
+ camel_folder_class->can_hold_folders = __camel_folder_can_hold_folders;
+ camel_folder_class->can_hold_messages = __camel_folder_can_hold_messages;
+ camel_folder_class->exists = __camel_folder_exists;
+ camel_folder_class->is_open = __camel_folder_is_open;
+ camel_folder_class->get_folder = __camel_folder_get_folder;
camel_folder_class->create = __camel_folder_create;
camel_folder_class->delete = __camel_folder_delete;
camel_folder_class->delete_messages = __camel_folder_delete_messages;
+ camel_folder_class->get_parent_folder = __camel_folder_get_parent_folder;
+ camel_folder_class->get_parent_store = __camel_folder_get_parent_store;
+ camel_folder_class->get_mode = __camel_folder_get_mode;
+
/* virtual method overload */
}
@@ -101,14 +108,14 @@ camel_folder_get_type (void)
/**
- * camel_folder_init_with_store: init the folder by setting its parent store.
+ * __camel_folder_init_with_store: init the folder by setting its parent store.
* @folder: folder object to initialize
* @parent_store: parent store object of the folder
*
*
**/
static void
-camel_folder_init_with_store(CamelFolder *folder, CamelStore *parent_store)
+__camel_folder_init_with_store(CamelFolder *folder, CamelStore *parent_store)
{
g_assert(folder);
g_assert(parent_store);
@@ -120,20 +127,21 @@ camel_folder_init_with_store(CamelFolder *folder, CamelStore *parent_store)
/**
- * camel_folder_open: Open a folder
+ * __camel_folder_open: Open a folder
* @folder:
- *
+ * @mode: open mode (R/W/RW ?)
*
**/
static void
-camel_folder_open(CamelFolder *folder)
+__camel_folder_open(CamelFolder *folder, CamelFolderOpenMode mode)
{
folder->open_state = FOLDER_OPEN;
+ folder->open_mode = mode;
}
/**
- * camel_folder_close:Close a folder.
+ * __camel_folder_close:Close a folder.
* @folder:
* @expunge: if TRUE, the flagged message are deleted.
*
@@ -141,7 +149,7 @@ camel_folder_open(CamelFolder *folder)
* expunge the flagged messages.
**/
static void
-camel_folder_close(CamelFolder *folder, gboolean expunge)
+__camel_folder_close(CamelFolder *folder, gboolean expunge)
{
#warning implement the expunge flag
folder->open_state = FOLDER_CLOSE;
@@ -151,7 +159,7 @@ camel_folder_close(CamelFolder *folder, gboolean expunge)
/**
- * camel_folder_set_name:set the (short) name of the folder
+ * __camel_folder_set_name:set the (short) name of the folder
* @folder: folder
* @name: new name of the folder
*
@@ -160,7 +168,7 @@ camel_folder_close(CamelFolder *folder, gboolean expunge)
*
**/
static void
-camel_folder_set_name(CamelFolder *folder, GString *name)
+__camel_folder_set_name(CamelFolder *folder, GString *name)
{
if (folder->name) g_string_free(folder->name, 0);;
folder->name = name;
@@ -169,7 +177,7 @@ camel_folder_set_name(CamelFolder *folder, GString *name)
/**
- * camel_folder_set_full_name:set the (full) name of the folder
+ * __camel_folder_set_full_name:set the (full) name of the folder
* @folder: folder
* @name: new name of the folder
*
@@ -178,7 +186,7 @@ camel_folder_set_name(CamelFolder *folder, GString *name)
*
**/
static void
-camel_folder_set_full_name(CamelFolder *folder, GString *name)
+__camel_folder_set_full_name(CamelFolder *folder, GString *name)
{
if (folder->full_name) g_string_free(folder->full_name, 0);;
folder->full_name = name;
@@ -188,7 +196,7 @@ camel_folder_set_full_name(CamelFolder *folder, GString *name)
/**
- * camel_folder_get_name: get the (short) name of the folder
+ * __camel_folder_get_name: get the (short) name of the folder
* @folder:
*
* get the name of the folder. The fully qualified name
@@ -197,14 +205,14 @@ camel_folder_set_full_name(CamelFolder *folder, GString *name)
* Return value: name of the folder
**/
static GString *
-camel_folder_get_name(CamelFolder *folder)
+__camel_folder_get_name(CamelFolder *folder)
{
return folder->name;
}
/**
- * camel_folder_get_full_name:get the (full) name of the folder
+ * __camel_folder_get_full_name:get the (full) name of the folder
* @folder: folder to get the name
*
* get the name of the folder.
@@ -212,7 +220,7 @@ camel_folder_get_name(CamelFolder *folder)
* Return value: full name of the folder
**/
static GString *
-camel_folder_get_full_name(CamelFolder *folder)
+__camel_folder_get_full_name(CamelFolder *folder)
{
return folder->full_name;
}
@@ -220,7 +228,7 @@ camel_folder_get_full_name(CamelFolder *folder)
/**
- * camel_folder_can_hold_folders: tests if the folder can contain other folders
+ * __camel_folder_can_hold_folders: tests if the folder can contain other folders
* @folder:
*
*
@@ -228,7 +236,7 @@ camel_folder_get_full_name(CamelFolder *folder)
* Return value:
**/
static gboolean
-camel_folder_can_hold_folders(CamelFolder *folder)
+__camel_folder_can_hold_folders(CamelFolder *folder)
{
return folder->can_hold_folders;
}
@@ -237,7 +245,7 @@ camel_folder_can_hold_folders(CamelFolder *folder)
/**
- * camel_folder_can_hold_messages: tests if the folder can contain messages
+ * __camel_folder_can_hold_messages: tests if the folder can contain messages
* @folder:
*
*
@@ -245,7 +253,7 @@ camel_folder_can_hold_folders(CamelFolder *folder)
* Return value:
**/
static gboolean
-camel_folder_can_hold_messages(CamelFolder *folder)
+__camel_folder_can_hold_messages(CamelFolder *folder)
{
return folder->can_hold_messages;
}
@@ -253,7 +261,7 @@ camel_folder_can_hold_messages(CamelFolder *folder)
/**
- * camel_folder_exists: tests if the folder object exists on the store.
+ * __camel_folder_exists: tests if the folder object exists on the store.
* @folder:
*
*
@@ -261,7 +269,7 @@ camel_folder_can_hold_messages(CamelFolder *folder)
* Return value:
**/
static gboolean
-camel_folder_exists(CamelFolder *folder)
+__camel_folder_exists(CamelFolder *folder)
{
return folder->exists_on_store;
}
@@ -269,7 +277,7 @@ camel_folder_exists(CamelFolder *folder)
/**
- * camel_folder_is_open:
+ * __camel_folder_is_open:
* @folder:
*
*
@@ -277,7 +285,7 @@ camel_folder_exists(CamelFolder *folder)
* Return value:
**/
static gboolean
-camel_folder_is_open(CamelFolder *folder)
+__camel_folder_is_open(CamelFolder *folder)
{
return (folder->open_state==FOLDER_OPEN);
}
@@ -286,7 +294,7 @@ camel_folder_is_open(CamelFolder *folder)
/**
- * camel_folder_get_folder: return the (sub)folder object that
+ * __camel_folder_get_folder: return the (sub)folder object that
* is specified.
*
* This method returns a folder objects. This folder
@@ -299,7 +307,7 @@ camel_folder_is_open(CamelFolder *folder)
* could not be created
**/
static CamelFolder *
-camel_folder_get_folder(CamelFolder *folder, GString *folder_name)
+__camel_folder_get_folder(CamelFolder *folder, GString *folder_name)
{
g_warning("getFolder called on the abstract CamelFolder class\n");
return NULL;
@@ -478,7 +486,102 @@ __camel_folder_delete_messages(CamelFolder *folder)
* Return value: TRUE if the messages could be deleted
**/
gboolean
-camel_folder_delete_messages(CamelFolder *folder)
+camel_folder_delete_messages (CamelFolder *folder)
{
return CF_CLASS(folder)->delete_messages(folder);
}
+
+
+
+
+
+
+/**
+ * __camel_folder_get_parent_folder: return parent folder
+ * @folder: folder to get the parent
+ *
+ *
+ *
+ * Return value:
+ **/
+static CamelFolder *
+__camel_folder_get_parent_folder (CamelFolder *folder)
+{
+ return folder->parent_folder;
+}
+
+
+/**
+ * camel_folder_get_parent_folder:return parent folder
+ * @folder: folder to get the parent
+ *
+ *
+ *
+ * Return value:
+ **/
+CamelFolder *
+camel_folder_get_parent_folder (CamelFolder *folder)
+{
+ return CF_CLASS(folder)->get_parent_folder(folder);
+}
+
+
+/**
+ * __camel_folder_get_parent_store: return parent store
+ * @folder: folder to get the parent
+ *
+ *
+ *
+ * Return value:
+ **/
+static CamelStore *
+__camel_folder_get_parent_store (CamelFolder *folder)
+{
+ return folder->parent_store;
+}
+
+
+/**
+ * camel_folder_get_parent_store:return parent store
+ * @folder: folder to get the parent
+ *
+ *
+ *
+ * Return value:
+ **/
+CamelStore *
+camel_folder_get_parent_store (CamelFolder *folder)
+{
+ return CF_CLASS(folder)->get_parent_store(folder);
+}
+
+
+
+/**
+ * __camel_folder_get_mode: return the open mode of a folder
+ * @folder:
+ *
+ *
+ *
+ * Return value: open mode of the folder
+ **/
+static CamelFolderOpenMode
+__camel_folder_get_mode(CamelFolder *folder)
+{
+ return folder->open_mode;
+}
+
+
+/**
+ * camel_folder_get_mode: return the open mode of a folder
+ * @folder:
+ *
+ *
+ *
+ * Return value: open mode of the folder
+ **/
+static CamelFolderOpenMode
+camel_folder_get_mode(CamelFolder *folder)
+{
+ return CF_CLASS(folder)->get_mode(folder);
+}