diff options
author | Rodrigo Moya <rodrigo@ximian.com> | 2001-10-04 02:03:14 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@src.gnome.org> | 2001-10-04 02:03:14 +0800 |
commit | 967083749da817df0ea296343528361c3564a798 (patch) | |
tree | 669a3acc0d27852b72a3a5de34446e8ad8d6806b /calendar/pcs/cal-factory.c | |
parent | 6726c35ab5c59ac587a3347117b86e91e8655337 (diff) | |
download | gsoc2013-evolution-967083749da817df0ea296343528361c3564a798.tar.gz gsoc2013-evolution-967083749da817df0ea296343528361c3564a798.tar.zst gsoc2013-evolution-967083749da817df0ea296343528361c3564a798.zip |
replace use of gnome_vfs_uri with e_uri
2001-10-03 Rodrigo Moya <rodrigo@ximian.com>
* gui/component-factory.c:
* gui/calendar-offline-handler.c:
* gui/comp-editor-factory.c: replace use of gnome_vfs_uri with e_uri
* gui/e-meeting-model.c (start_addressbook_server): make it return void,
since the return value does not mind
* pcs/cal.c:
* pcs/cal-factory.c:
* pcs/cal-backend.[ch]: don't use GnomeVFS for URI management
* pcs/cal-backend-file.c: ditto, only use GnomeVFS for internal
operations
* cal-client/cal-client.c (cal_client_open_calendar): don't CORBA_exception_free
before checking for exceptions
svn path=/trunk/; revision=13380
Diffstat (limited to 'calendar/pcs/cal-factory.c')
-rw-r--r-- | calendar/pcs/cal-factory.c | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/calendar/pcs/cal-factory.c b/calendar/pcs/cal-factory.c index 32786861bd..9b4bc2fc67 100644 --- a/calendar/pcs/cal-factory.c +++ b/calendar/pcs/cal-factory.c @@ -25,6 +25,7 @@ #include <stdio.h> #include <gtk/gtksignal.h> #include <liboaf/liboaf.h> +#include "e-util/e-url.h" #include "evolution-calendar.h" #include "cal.h" #include "cal-backend.h" @@ -84,13 +85,13 @@ free_method (gpointer key, gpointer value, gpointer data) static void free_backend (gpointer key, gpointer value, gpointer data) { - GnomeVFSURI *uri; + char *uri; CalBackend *backend; uri = key; backend = value; - gnome_vfs_uri_unref (uri); + g_free (uri); gtk_object_unref (GTK_OBJECT (backend)); } @@ -98,14 +99,14 @@ free_backend (gpointer key, gpointer value, gpointer data) /* Looks up a calendar backend in a factory's hash table of uri->cal */ static CalBackend * -lookup_backend (CalFactory *factory, GnomeVFSURI *uri) +lookup_backend (CalFactory *factory, const char *uristr) { CalFactoryPrivate *priv; CalBackend *backend; priv = factory->priv; - backend = g_hash_table_lookup (priv->backends, uri); + backend = g_hash_table_lookup (priv->backends, uristr); return backend; } @@ -115,10 +116,10 @@ backend_last_client_gone_cb (CalBackend *backend, gpointer data) { CalFactory *factory; CalFactoryPrivate *priv; - GnomeVFSURI *uri; + const char *uristr; gpointer orig_key; gboolean result; - GnomeVFSURI *orig_uri; + const char *orig_uristr; fprintf (stderr, "backend_last_client_gone_cb() called!\n"); @@ -127,16 +128,16 @@ backend_last_client_gone_cb (CalBackend *backend, gpointer data) /* Remove the backend from the hash table */ - uri = cal_backend_get_uri (backend); - g_assert (uri != NULL); + uristr = cal_backend_get_uri (backend); + g_assert (uristr != NULL); - result = g_hash_table_lookup_extended (priv->backends, uri, &orig_key, NULL); + result = g_hash_table_lookup_extended (priv->backends, uristr, &orig_key, NULL); g_assert (result != FALSE); - orig_uri = orig_key; + orig_uristr = orig_key; - g_hash_table_remove (priv->backends, orig_uri); - gnome_vfs_uri_unref (orig_uri); + g_hash_table_remove (priv->backends, orig_uristr); + g_free ((gpointer) orig_uristr); gtk_object_unref (GTK_OBJECT (backend)); @@ -148,14 +149,13 @@ backend_last_client_gone_cb (CalBackend *backend, gpointer data) /* Adds a backend to the calendar factory's hash table */ static void -add_backend (CalFactory *factory, GnomeVFSURI *uri, CalBackend *backend) +add_backend (CalFactory *factory, const char *uristr, CalBackend *backend) { CalFactoryPrivate *priv; priv = factory->priv; - gnome_vfs_uri_ref (uri); - g_hash_table_insert (priv->backends, uri, backend); + g_hash_table_insert (priv->backends, g_strdup (uristr), backend); gtk_signal_connect (GTK_OBJECT (backend), "last_client_gone", GTK_SIGNAL_FUNC (backend_last_client_gone_cb), @@ -167,17 +167,25 @@ add_backend (CalFactory *factory, GnomeVFSURI *uri, CalBackend *backend) * MethodNotSupported error code. */ static CalBackend * -launch_backend_for_uri (CalFactory *factory, GnomeVFSURI *uri, GNOME_Evolution_Calendar_Listener listener) +launch_backend_for_uri (CalFactory *factory, + const char *uristr, + GNOME_Evolution_Calendar_Listener listener) { CalFactoryPrivate *priv; const char *method; GtkType *type; CalBackend *backend; + EUri *uri; priv = factory->priv; - method = gnome_vfs_uri_get_scheme (uri); + uri = e_uri_new (uristr); + if (!uri) + return NULL; + + method = uri->protocol; type = g_hash_table_lookup (priv->methods, method); + e_uri_free (uri); if (!type) { CORBA_Environment ev; @@ -205,7 +213,7 @@ launch_backend_for_uri (CalFactory *factory, GnomeVFSURI *uri, GNOME_Evolution_C /* Opens a calendar backend and puts it in the factory's backend hash table */ static CalBackend * -open_backend (CalFactory *factory, GnomeVFSURI *uri, gboolean only_if_exists, +open_backend (CalFactory *factory, const char *uristr, gboolean only_if_exists, GNOME_Evolution_Calendar_Listener listener) { CalFactoryPrivate *priv; @@ -215,15 +223,15 @@ open_backend (CalFactory *factory, GnomeVFSURI *uri, gboolean only_if_exists, priv = factory->priv; - backend = launch_backend_for_uri (factory, uri, listener); + backend = launch_backend_for_uri (factory, uristr, listener); if (!backend) return NULL; - status = cal_backend_open (backend, uri, only_if_exists); + status = cal_backend_open (backend, uristr, only_if_exists); switch (status) { case CAL_BACKEND_OPEN_SUCCESS: - add_backend (factory, uri, backend); + add_backend (factory, uristr, backend); return backend; case CAL_BACKEND_OPEN_ERROR: @@ -268,7 +276,9 @@ open_backend (CalFactory *factory, GnomeVFSURI *uri, gboolean only_if_exists, * object. */ static void -add_calendar_client (CalFactory *factory, CalBackend *backend, GNOME_Evolution_Calendar_Listener listener) +add_calendar_client (CalFactory *factory, + CalBackend *backend, + GNOME_Evolution_Calendar_Listener listener) { Cal *cal; CORBA_Environment ev; @@ -316,21 +326,16 @@ add_uri (gpointer key, gpointer value, gpointer data) GNOME_Evolution_Calendar_StringSeq *list = cfud->list; GNOME_Evolution_Calendar_CalMode mode = cfud->mode; char *uri_string = key; - CalBackend *backend; - GnomeVFSURI *uri; + CalBackend *backend; switch (mode) { case GNOME_Evolution_Calendar_MODE_LOCAL: - uri = gnome_vfs_uri_new_private (uri_string, TRUE, TRUE, TRUE); - backend = lookup_backend (factory, uri); - gnome_vfs_uri_unref (uri); + backend = lookup_backend (factory, uri_string); if (backend == NULL && cal_backend_get_mode (backend) == CAL_MODE_LOCAL) return; break; case GNOME_Evolution_Calendar_MODE_REMOTE: - uri = gnome_vfs_uri_new_private (uri_string, TRUE, TRUE, TRUE); - backend = lookup_backend (factory, uri); - gnome_vfs_uri_unref (uri); + backend = lookup_backend (factory, uri_string); if (backend == NULL && cal_backend_get_mode (backend) == CAL_MODE_REMOTE) return; break; @@ -356,18 +361,17 @@ open_fn (gpointer data) { OpenJobData *jd; CalFactory *factory; - GnomeVFSURI *uri; gboolean only_if_exists; GNOME_Evolution_Calendar_Listener listener; CalBackend *backend; CORBA_Environment ev; + char *uri_string; jd = data; g_assert (jd->uri != NULL); /* Check the URI */ - - uri = gnome_vfs_uri_new_private (jd->uri, TRUE, TRUE, TRUE); + uri_string = g_strdup (jd->uri); g_free (jd->uri); only_if_exists = jd->only_if_exists; @@ -375,7 +379,7 @@ open_fn (gpointer data) listener = jd->listener; g_free (jd); - if (!uri) { + if (!uri_string) { CORBA_exception_init (&ev); GNOME_Evolution_Calendar_Listener_notifyCalOpened ( listener, @@ -392,12 +396,10 @@ open_fn (gpointer data) /* Look up the backend and create it if needed */ - backend = lookup_backend (factory, uri); + backend = lookup_backend (factory, uri_string); if (!backend) - backend = open_backend (factory, uri, only_if_exists, listener); - - gnome_vfs_uri_unref (uri); + backend = open_backend (factory, uri_string, only_if_exists, listener); if (backend) add_calendar_client (factory, backend, listener); @@ -428,16 +430,15 @@ impl_CalFactory_open (PortableServer_Servant servant, gboolean result; OpenJobData *jd; GNOME_Evolution_Calendar_Listener listener_copy; - GnomeVFSURI *uri; - const char *method_str; GtkType type; + EUri *uri; factory = CAL_FACTORY (bonobo_object_from_servant (servant)); priv = factory->priv; /* check URI to see if we support it */ - uri = gnome_vfs_uri_new_private (str_uri, TRUE, TRUE, TRUE); + uri = e_uri_new (str_uri); if (!uri) { CORBA_exception_set (ev, CORBA_USER_EXCEPTION, ex_GNOME_Evolution_Calendar_CalFactory_InvalidURI, @@ -445,10 +446,9 @@ impl_CalFactory_open (PortableServer_Servant servant, return; } - method_str = gnome_vfs_uri_get_scheme (uri); - type = g_hash_table_lookup (priv->methods, method_str); + type = g_hash_table_lookup (priv->methods, uri->protocol); - gnome_vfs_uri_unref (uri); + e_uri_free (uri); if (!type) { CORBA_exception_set (ev, CORBA_USER_EXCEPTION, ex_GNOME_Evolution_Calendar_CalFactory_UnsupportedMethod, @@ -615,7 +615,7 @@ cal_factory_init (CalFactory *factory) factory->priv = priv; priv->methods = g_hash_table_new (g_str_hash, g_str_equal); - priv->backends = g_hash_table_new (gnome_vfs_uri_hash, gnome_vfs_uri_hequal); + priv->backends = g_hash_table_new (g_str_hash, g_str_equal); priv->registered = FALSE; } |