aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/mbox/camel-mbox-store.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2000-02-22 02:38:58 +0800
committerDan Winship <danw@src.gnome.org>2000-02-22 02:38:58 +0800
commitd3d2adb98ce84c89f5e2c648329764d55d8ec412 (patch)
treedf745b058ae76662cef56e168c7afae7a912b045 /camel/providers/mbox/camel-mbox-store.c
parenta81eaf4588c2ed0d126e8294e83c0e914e5fb91c (diff)
downloadgsoc2013-evolution-d3d2adb98ce84c89f5e2c648329764d55d8ec412.tar.gz
gsoc2013-evolution-d3d2adb98ce84c89f5e2c648329764d55d8ec412.tar.zst
gsoc2013-evolution-d3d2adb98ce84c89f5e2c648329764d55d8ec412.zip
add CamelExceptions to several functions. Use camel_session_new to
* camel-session.h: * camel-session.c: add CamelExceptions to several functions. Use camel_session_new to initialize the session and URL fields of created CamelStores as appropriate. * camel-store.h: * camel-store.c * camel-service.h: * camel-service.c: Move the session and url (and associated functions) from CamelStore to CamelService. Add url_flags to CamelService so subclasses can specify which URL components are mandatory for them. Add camel_session_new for camel_session_get_store* to use. * providers/mbox/camel-mbox-folder.c: * providers/mbox/camel-mbox-store.c: * providers/mbox/camel-mbox-store.h: Update for above changes. svn path=/trunk/; revision=1888
Diffstat (limited to 'camel/providers/mbox/camel-mbox-store.c')
-rw-r--r--camel/providers/mbox/camel-mbox-store.c55
1 files changed, 9 insertions, 46 deletions
diff --git a/camel/providers/mbox/camel-mbox-store.c b/camel/providers/mbox/camel-mbox-store.c
index 12923b1b5a..9c5e889aa7 100644
--- a/camel/providers/mbox/camel-mbox-store.c
+++ b/camel/providers/mbox/camel-mbox-store.c
@@ -23,16 +23,14 @@
#include "camel-mbox-store.h"
#include "camel-mbox-folder.h"
+#include "camel-exception.h"
#include "url-util.h"
-static CamelStoreClass *parent_class=NULL;
-
/* Returns the class for a CamelMboxStore */
#define CMBOXS_CLASS(so) CAMEL_MBOX_STORE_CLASS (GTK_OBJECT(so)->klass)
#define CF_CLASS(so) CAMEL_FOLDER_CLASS (GTK_OBJECT(so)->klass)
#define CMBOXF_CLASS(so) CAMEL_MBOX_FOLDER_CLASS (GTK_OBJECT(so)->klass)
-static void _init (CamelStore *store, CamelSession *session, const gchar *url_name, CamelException *ex);
static CamelFolder *_get_folder (CamelStore *store, const gchar *folder_name, CamelException *ex);
@@ -40,12 +38,8 @@ static void
camel_mbox_store_class_init (CamelMboxStoreClass *camel_mbox_store_class)
{
CamelStoreClass *camel_store_class = CAMEL_STORE_CLASS (camel_mbox_store_class);
-
- parent_class = gtk_type_class (camel_store_get_type ());
- /* virtual method definition */
/* virtual method overload */
- camel_store_class->init = _init;
camel_store_class->get_folder = _get_folder;
}
@@ -55,8 +49,10 @@ static void
camel_mbox_store_init (gpointer object, gpointer klass)
{
CamelStore *store = CAMEL_STORE (object);
-
+ CamelService *service = CAMEL_SERVICE (object);
+
store->separator = '/';
+ service->url_flags = CAMEL_SERVICE_URL_NEED_PATH;
}
@@ -87,50 +83,17 @@ camel_mbox_store_get_type (void)
}
-
-
-/* These evil public functions are here for test only */
-void
-camel_mbox_store_set_toplevel_dir (CamelMboxStore *store, const gchar *toplevel, CamelException *ex)
-{
- store->toplevel_dir = g_strdup (toplevel);
- CAMEL_STORE(store)->separator = '/';
-}
-
-
const gchar *
-camel_mbox_store_get_toplevel_dir (CamelMboxStore *store, CamelException *ex)
+camel_mbox_store_get_toplevel_dir (CamelMboxStore *store)
{
- return store->toplevel_dir;
-}
-
+ Gurl *url = CAMEL_SERVICE (store)->url;
-
-static void
-_init (CamelStore *store, CamelSession *session, const gchar *url_name, CamelException *ex)
-{
- CamelMboxStore *mbox_store = CAMEL_MBOX_STORE (store);
- Gurl *store_url;
-
- g_assert (url_name);
- /* call parent implementation */
- parent_class->init (store, session, url_name, ex);
-
-
- /* find the path in the URL*/
- store_url = g_url_new (url_name);
-
- g_return_if_fail (store_url);
- g_return_if_fail (store_url->path);
-
- mbox_store->toplevel_dir = g_strdup (store_url->path);
- g_url_free (store_url);
-
-
-
+ g_assert(url != NULL);
+ return url->path;
}
+
static CamelFolder *
_get_folder (CamelStore *store, const gchar *folder_name, CamelException *ex)
{