summaryrefslogtreecommitdiff
path: root/archiver/bonobo-moniker-archiver.c
diff options
context:
space:
mode:
Diffstat (limited to 'archiver/bonobo-moniker-archiver.c')
-rw-r--r--archiver/bonobo-moniker-archiver.c146
1 files changed, 0 insertions, 146 deletions
diff --git a/archiver/bonobo-moniker-archiver.c b/archiver/bonobo-moniker-archiver.c
deleted file mode 100644
index 19c4efde5..000000000
--- a/archiver/bonobo-moniker-archiver.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * bonobo-moniker-archiver.c: archiver xml database moniker implementation
- *
- * Author:
- * Dietmar Maurer (dietmar@ximian.com)
- * Bradford Hovinen <hovinen@ximian.com>
- *
- * Copyright 2001 Ximian, Inc.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <bonobo.h>
-
-#include "bonobo-config-archiver.h"
-#include "archive.h"
-#include "util.h"
-
-static Archive *user_archive = NULL;
-static Archive *global_archive = NULL;
-
-static void
-archive_destroy_cb (Archive *archive)
-{
- if (archive == global_archive)
- global_archive = NULL;
- else if (archive == user_archive)
- user_archive = NULL;
-}
-
-static Bonobo_Unknown
-archive_resolve (BonoboMoniker *moniker,
- const Bonobo_ResolveOptions *options,
- const CORBA_char *requested_interface,
- CORBA_Environment *ev)
-{
- const gchar *name;
-
- Bonobo_Unknown ret;
-
- if (strcmp (requested_interface, "IDL:ConfigArchiver/Archive:1.0")) {
- EX_SET_NOT_FOUND (ev);
- return CORBA_OBJECT_NIL;
- }
-
- name = bonobo_moniker_get_name (moniker);
-
- if (!strcmp (name, "global-archive")) {
- if (global_archive == NULL) {
- global_archive = ARCHIVE (archive_load (TRUE));
- gtk_signal_connect (GTK_OBJECT (global_archive), "destroy", GTK_SIGNAL_FUNC (archive_destroy_cb), NULL);
- ret = CORBA_Object_duplicate (BONOBO_OBJREF (global_archive), ev);
- } else {
- ret = bonobo_object_dup_ref (BONOBO_OBJREF (global_archive), ev);
- }
-
- if (BONOBO_EX (ev)) {
- g_critical ("Cannot duplicate object");
- bonobo_object_release_unref (ret, NULL);
- ret = CORBA_OBJECT_NIL;
- }
- }
- else if (!strcmp (name, "user-archive")) {
- if (user_archive == NULL) {
- user_archive = ARCHIVE (archive_load (FALSE));
- gtk_signal_connect (GTK_OBJECT (user_archive), "destroy", GTK_SIGNAL_FUNC (archive_destroy_cb), NULL);
- ret = CORBA_Object_duplicate (BONOBO_OBJREF (user_archive), ev);
- } else {
- ret = bonobo_object_dup_ref (BONOBO_OBJREF (user_archive), ev);
- }
-
- if (BONOBO_EX (ev)) {
- g_critical ("Cannot duplicate object");
- bonobo_object_release_unref (ret, NULL);
- ret = CORBA_OBJECT_NIL;
- }
- } else {
- EX_SET_NOT_FOUND (ev);
- ret = CORBA_OBJECT_NIL;
- }
-
- return ret;
-}
-
-static Bonobo_Unknown
-archiverdb_resolve (BonoboMoniker *moniker,
- const Bonobo_ResolveOptions *options,
- const CORBA_char *requested_interface,
- CORBA_Environment *ev)
-{
- Bonobo_Moniker parent;
- Bonobo_ConfigDatabase db;
- const gchar *name;
-
- if (strcmp (requested_interface, "IDL:Bonobo/ConfigDatabase:1.0")) {
- EX_SET_NOT_FOUND (ev);
- return CORBA_OBJECT_NIL;
- }
-
- parent = bonobo_moniker_get_parent (moniker, ev);
- if (BONOBO_EX (ev))
- return CORBA_OBJECT_NIL;
-
- if (parent == CORBA_OBJECT_NIL) {
- EX_SET_NOT_FOUND (ev);
- return CORBA_OBJECT_NIL;
- }
-
- name = bonobo_moniker_get_name (moniker);
-
- db = bonobo_config_archiver_new (parent, options, name, ev);
-
- if (db == CORBA_OBJECT_NIL || BONOBO_EX (ev))
- EX_SET_NOT_FOUND (ev);
-
- bonobo_object_release_unref (parent, NULL);
-
- return db;
-}
-
-
-static BonoboObject *
-bonobo_moniker_archiver_factory (BonoboGenericFactory *this,
- const char *object_id,
- void *closure)
-{
- if (!strcmp (object_id, "OAFIID:Bonobo_Moniker_archiverdb")) {
- return BONOBO_OBJECT (bonobo_moniker_simple_new
- ("archiverdb:", archiverdb_resolve));
- }
- else if (!strcmp (object_id, "OAFIID:Bonobo_Moniker_archive")) {
- return BONOBO_OBJECT (bonobo_moniker_simple_new
- ("archive:", archive_resolve));
- } else {
- g_warning ("Failing to manufacture a '%s'", object_id);
- }
-
- return NULL;
-}
-
-BONOBO_OAF_FACTORY_MULTI ("OAFIID:Bonobo_Moniker_archiver_Factory",
- "bonobo xml archiver database moniker", "1.0",
- bonobo_moniker_archiver_factory,
- NULL);