From cb20fd3b4a8d7e56f93cb0e025bf638d5cc382a8 Mon Sep 17 00:00:00 2001 From: Chris Toshok Date: Thu, 27 Sep 2001 00:05:03 +0000 Subject: use priv->iid instead of the hardcoded string here. 2001-09-26 Chris Toshok * backend/pas/pas-book-factory.c (pas_book_factory_destroy): use priv->iid instead of the hardcoded string here. (pas_book_factory_activate): parameterize the factory's iid, as in the calendar server, and provide a default if iid == NULL. * backend/pas/pas-book-factory.h: add iid parameter for pas_book_factory_activate. svn path=/trunk/; revision=13180 --- addressbook/backend/pas/pas-book-factory.c | 30 ++++++++++++++++++++++-------- addressbook/backend/pas/pas-book-factory.h | 2 +- 2 files changed, 23 insertions(+), 9 deletions(-) (limited to 'addressbook/backend') diff --git a/addressbook/backend/pas/pas-book-factory.c b/addressbook/backend/pas/pas-book-factory.c index ca4c74631f..cb7b291a9e 100644 --- a/addressbook/backend/pas/pas-book-factory.c +++ b/addressbook/backend/pas/pas-book-factory.c @@ -15,7 +15,7 @@ #include "addressbook.h" #include "pas-book-factory.h" -#define PAS_BOOK_FACTORY_OAF_ID "OAFIID:GNOME_Evolution_Wombat_ServerFactory" +#define DEFAULT_PAS_BOOK_FACTORY_OAF_ID "OAFIID:GNOME_Evolution_Wombat_ServerFactory" static BonoboObjectClass *pas_book_factory_parent_class; POA_GNOME_Evolution_Addressbook_BookFactory__vepv pas_book_factory_vepv; @@ -31,6 +31,9 @@ struct _PASBookFactoryPrivate { GHashTable *active_server_map; GList *queued_requests; + /* OAFIID of the factory */ + char *iid; + /* Whether the factory has been registered with OAF yet */ guint registered : 1; }; @@ -426,11 +429,12 @@ pas_book_factory_new (void) * pas_book_factory_activate: */ gboolean -pas_book_factory_activate (PASBookFactory *factory) +pas_book_factory_activate (PASBookFactory *factory, const char *iid) { PASBookFactoryPrivate *priv; CORBA_Object obj; OAF_RegistrationResult result; + char *tmp_iid; g_return_val_if_fail (factory != NULL, FALSE); g_return_val_if_fail (PAS_IS_BOOK_FACTORY (factory), FALSE); @@ -439,27 +443,35 @@ pas_book_factory_activate (PASBookFactory *factory) g_return_val_if_fail (!priv->registered, FALSE); - puts ("about to register addressbook"); + /* if iid is NULL, use the default factory OAFIID */ + if (iid) + tmp_iid = g_strdup (iid); + else + tmp_iid = g_strdup (DEFAULT_PAS_BOOK_FACTORY_OAF_ID); obj = bonobo_object_corba_objref (BONOBO_OBJECT (factory)); - result = oaf_active_server_register (PAS_BOOK_FACTORY_OAF_ID, obj); + result = oaf_active_server_register (tmp_iid, obj); switch (result) { case OAF_REG_SUCCESS: priv->registered = TRUE; + priv->iid = tmp_iid; return TRUE; case OAF_REG_NOT_LISTED: g_message ("Error registering the PAS factory: not listed"); - return FALSE; + break; case OAF_REG_ALREADY_ACTIVE: g_message ("Error registering the PAS factory: already active"); - return FALSE; + break; case OAF_REG_ERROR: default: g_message ("Error registering the PAS factory: generic error"); - return FALSE; + break; } + + g_free (tmp_iid); + return FALSE; } static void @@ -532,9 +544,11 @@ pas_book_factory_destroy (GtkObject *object) CORBA_Object obj; obj = bonobo_object_corba_objref (BONOBO_OBJECT (factory)); - oaf_active_server_unregister (PAS_BOOK_FACTORY_OAF_ID, obj); + oaf_active_server_unregister (factory->priv->iid, obj); factory->priv->registered = FALSE; } + + g_free (factory->priv->iid); g_free (factory->priv); diff --git a/addressbook/backend/pas/pas-book-factory.h b/addressbook/backend/pas/pas-book-factory.h index fc00b7b423..22d4a87b3e 100644 --- a/addressbook/backend/pas/pas-book-factory.h +++ b/addressbook/backend/pas/pas-book-factory.h @@ -35,7 +35,7 @@ void pas_book_factory_register_backend (PASBookFactory int pas_book_factory_get_n_backends (PASBookFactory *factory); -gboolean pas_book_factory_activate (PASBookFactory *factory); +gboolean pas_book_factory_activate (PASBookFactory *factory, const char *iid); GtkType pas_book_factory_get_type (void); -- cgit v1.2.3