diff options
author | Eskil Heyn Olsen <eskil@src.gnome.org> | 2000-07-08 03:08:03 +0000 |
---|---|---|
committer | Eskil Heyn Olsen <eskil@src.gnome.org> | 2000-07-08 03:08:03 +0000 |
commit | 830d17851eec892d3c0b2a4db7f593c56ed0b674 (patch) | |
tree | 22d4d8eeb4c467d6b0018618f2496cc8077447ef /components | |
parent | 61eba534c5ebafb5f6f14d71836b54958bd53f48 (diff) | |
download | nautilus-830d17851eec892d3c0b2a4db7f593c56ed0b674.tar.gz |
Represents the july 5th milestone.
* components/services/install/command-line/genpkg_list.example:
Represents the july 5th milestone.
(create_default_metadata):
* components/services/install/lib/eazel-install-rpm-glue.c:
(rpm_show_progress), (do_rpm_install),
(eazel_install_fetch_rpm_dependencies):
Added some FIXME's. Fixed a horrible mem bug. It now leaks, but
rpm install works.
* components/services/install/lib/eazel-install-xml-package-list.c:
(parse_package):
Added a check so the strtol isn't a risk anymore
* components/services/trilobite/idl/trilobite-service.idl:
Added the interface for the password query hell.
* components/services/trilobite/libtrilobite/Makefile.am:
*
components/services/trilobite/libtrilobite/trilobite-service-passwo
rdquery-private.h:
*
components/services/trilobite/libtrilobite/trilobite-service-passwo
rdquery-public.h:
*
components/services/trilobite/libtrilobite/trilobite-service-passwo
rdquery.c: (trilobite_passwordquery_get_epv),
(trilobite_passwordquery_destroy),
(trilobite_passwordquery_set_arg),
(trilobite_passwordquery_class_initialize),
(trilobite_passwordquery_construct),
(trilobite_passwordquery_create_corba_object),
(trilobite_passwordquery_initialize),
(trilobite_passwordquery_get_type), (trilobite_passwordquery_new):
Did the initial passwordquery corba object by cp & s/x/y/ on
trilobite-service*[ch].
* data/emblems/Makefile.am:
removed personal.png from _DATA, as it does not exists
* icons/Makefile.am:
removed emblem-personal.svg
* icons/vector/Makefile.am:
icons/Makefile.am
* nautilus-installer/src/Makefile:
* nautilus-installer/src/installer.c: (eazel_install_progress),
(make_dirs), (installer):
Now creates the /var/eazel/services dir. Sets the proper flags for
the install object and again prints the package name during
progress display.
* nautilus-installer/src/interface.c: (create_window):
Fiddled with the layout, everything doesn't jump around anymore,
just a few things.
* nautilus-installer/src/prescript:
Inc'ed the version to 0.1d
Diffstat (limited to 'components')
10 files changed, 435 insertions, 32 deletions
diff --git a/components/services/install/command-line/Makefile.am b/components/services/install/command-line/Makefile.am index a3b216998..8abfc5423 100644 --- a/components/services/install/command-line/Makefile.am +++ b/components/services/install/command-line/Makefile.am @@ -38,6 +38,5 @@ eazel_uninstall_SOURCES = \ $(NULL) eazel_gen_xml_SOURCES = \ - eazel-gen-xml.c \ + eazel-gen-xml.c \ $(NULL) - diff --git a/components/services/install/command-line/genpkg_list.example b/components/services/install/command-line/genpkg_list.example index a57e7cfba..16f3888b6 100644 --- a/components/services/install/command-line/genpkg_list.example +++ b/components/services/install/command-line/genpkg_list.example @@ -1,25 +1,38 @@ -Essential Packages:GConf:0.5.msM31:3:i386:0:Stuff -Essential Packages:GConf-devel:0.5.msM31:3:i386:0:Stuff -Essential Packages:ORBit:0.5.1.msM31:2:i386:0:Stuff -Essential Packages:ORBit-devel:0.5.1.msM31:2:i386:0:Stuff -Essential Packages:bonobo:0.15.msM31:prw2:i386:0:Stuff -Essential Packages:bonobo-devel:0.15.msM31:prw2:i386:0:Stuff -Essential Packages:control-center:1.2.0.msM31:2:i386:0:Stuff -Essential Packages:control-center-devel:1.2.0.msM31:2:i386:0:Stuff -Essential Packages:eog:0.3.msM31:2:i386:0:Stuff -Essential Packages:gdk-pixbuf:0.8.0.msM31:3:i386:0:Stuff -Essential Packages:gdk-pixbuf-devel:0.8.0.msM31:3:i386:0:Stuff -Essential Packages:gnet:1.0.3.msM31:1:i386:0:Stuff -Essential Packages:gnet-devel:1.0.3.msM31:1:i386:0:Stuff -Essential Packages:gnome-print:0.20.msM31:1:i386:0:Stuff -Essential Packages:gnome-print-devel:0.20.msM31:1:i386:0:Stuff -Essential Packages:gnome-vfs:0.1.msM31:3:i386:0:Stuff -Essential Packages:gnome-vfs-devel:0.1.msM31:3:i386:0:Stuff -Essential Packages:gtkhtml:0.4.msM31:2:i386:0:Stuff -Essential Packages:gtkhtml-devel:0.4.msM31:2:i386:0:Stuff -Essential Packages:libghttp:1.0.7.msM31:1:i386:0:Stuff -Essential Packages:libghttp-devel:1.0.7.msM31:1:i386:0:Stuff -Essential Packages:nautilus:0.1.0:prw2:i386:0:Stuff -Essential Packages:nautilus-devel:0.1.0:prw2:i386:0:Stuff -Essential Packages:oaf:0.3.0.msM31:2:i386:0:Stuff -Essential Packages:oaf-devel:0.3.0.msM31:2:i386:0:Stuff +Nautilus:GConf:0.5.EazelSourceSnapshot::i386:: +Nautilus:GConf-devel:0.5.EazelSourceSnapshot::i386:: +Nautilus:ORBit:0.5.2.EazelSourceSnapshot::i386:: +Nautilus:ORBit-devel:0.5.2.EazelSourceSnapshot::i386:: +Nautilus:bonobo:0.15.EazelSourceSnapshot:prw:i386:: +Nautilus:bonobo-devel:0.15.EazelSourceSnapshot:prw:i386:: +Nautilus:control-center:1.2.0.EazelSourceSnapshot::i386:: +Nautilus:control-center-devel:1.2.0.EazelSourceSnapshot::i386:: +Nautilus:eog:0.3.EazelSourceSnapshot::i386:: +Nautilus:gdk-pixbuf:0.8.0.EazelSourceSnapshot::i386:: +Nautilus:gdk-pixbuf-devel:0.8.0.EazelSourceSnapshot::i386:: +Nautilus:gnome-print:0.20.EazelSourceSnapshot::i386:: +Nautilus:gnome-print-devel:0.20.EazelSourceSnapshot::i386:: +Nautilus:gnome-vfs:0.1.EazelSourceSnapshot::i386:: +Nautilus:gnome-vfs-devel:0.1.EazelSourceSnapshot::i386:: +Nautilus:gtkhtml:0.4.EazelSourceSnapshot::i386:: +Nautilus:gtkhtml-devel:0.4.EazelSourceSnapshot::i386:: +Nautilus:libghttp:1.0.7.EazelSourceSnapshot::i386:: +Nautilus:libghttp-devel:1.0.7.EazelSourceSnapshot::i386:: +Nautilus:medusa:0.1.0.EazelSourceSnapshot::i386:: +Nautilus:medusa-devel:0.1.0.EazelSourceSnapshot::i386:: +Nautilus:nautilus:0.1.0:prw:i386:: +Nautilus:nautilus-devel:0.1.0:prw:i386:: +Nautilus:oaf:0.4.0.EazelSourceSnapshot::i386:: +Nautilus:oaf-devel:0.4.0.EazelSourceSnapshot::i386:: +Nautilus:gnome-libs:1.2.3::i386:: +Nautilus:gtk+:1.2.8::i386:: +Nautilus:glib:1.2.8::i386:: +Nautilus:imlib:1.9.8.1::i386:: +Nautilus:imlib-configurator::i386:: +Nautilus:libxml:1.8.7::i386:: +Nautilus:gnome-libs-devel:1.2.3::i386:: +Nautilus:gtk+-devel:1.2.8::i386:: +Nautilus:glib-devel:1.2.8::i386:: +Nautilus:imlib-devel:1.9.8.1::i386:: +Nautilus:libxml-devel:1.8.7::i386:: +Nautilus:imlib-cfgeditor:1.9.8.1::i386:: +Nautilus:mozilla:5.0::i386:: diff --git a/components/services/install/lib/eazel-install-metadata.c b/components/services/install/lib/eazel-install-metadata.c index bc6461eb9..030853338 100644 --- a/components/services/install/lib/eazel-install-metadata.c +++ b/components/services/install/lib/eazel-install-metadata.c @@ -63,6 +63,7 @@ create_default_metadata (const char* config_file) { } } } + rv = create_default_configuration_metafile (config_file); if (rv == FALSE) { g_error (_("*** Could not create the default configuration file! ***\n")); diff --git a/components/services/install/lib/eazel-install-rpm-glue.c b/components/services/install/lib/eazel-install-rpm-glue.c index 715764405..ddd0f7ff5 100644 --- a/components/services/install/lib/eazel-install-rpm-glue.c +++ b/components/services/install/lib/eazel-install-rpm-glue.c @@ -416,6 +416,9 @@ rpm_show_progress (const Header h, break; case RPMCALLBACK_INST_PROGRESS: { + /* FIXME: bugzilla.eazel.com 1585 + Need a hash between filenames and packages, so I can lookup the + real package here */ PackageData *pack; pack = packagedata_new (); pack->name = g_strdup (filename); @@ -483,8 +486,13 @@ do_rpm_install (EazelInstall *service, binary_headers = g_new (Header, pkg_count + 1); /* First load all rpm headers */ for (iterator = packages; iterator ; iterator = iterator->next) { - pkg_file = g_strdup_printf ("%s", - rpmfilename_from_packagedata ((PackageData*)iterator->data)); + /* RPM keeps this var (pkg_file), so don't use a g_ func to alloc it, + nor should it be freed */ + /* FIXME: bugzilla.eazel.com 1602 + I should remember these pointers and free them at the end, + except that mayby RPM does, I'm just not sure. And anyways, being the service + "it's not that important" :-( */ + pkg_file = strdup (rpmfilename_from_packagedata ((PackageData*)iterator->data)); g_message ("Installing %s...", pkg_file); fd = fdOpen (pkg_file, O_RDONLY, 0644); if (fdFileno (fd) < 0) { @@ -548,6 +556,7 @@ do_rpm_install (EazelInstall *service, } /* Ensure the order */ if (!(eazel_install_get_interface_flags (service) & INSTALL_NOORDER)) { + g_message ("Reordering..."); if (rpmdepOrder(rpmdep)) { num_failed = num_packages; stop_install = 1; @@ -609,7 +618,9 @@ do_rpm_install (EazelInstall *service, &probs, eazel_install_get_interface_flags (service), eazel_install_get_problem_filters (service)); - + rpmProblemSetPrint (stderr, probs); + rpmProblemSetPrint (stdout, probs); + g_message ("rpmRunTransactions = %d", rc); rpmProblemSetFree(probs); if (rc == -1) { /* some error */ @@ -1206,14 +1217,21 @@ eazel_install_fetch_rpm_dependencies (EazelInstall *service, if (pack_entry == NULL) { switch (conflict.sense) { case RPMDEP_SENSE_REQUIRES: - g_warning (_("%s needs %s %s"), conflict.byName, conflict.needsName, conflict.needsVersion); + /* FIXME: bugzilla.eazel.com 1584 + This sigsegvs... + */ + g_warning (_("%s %s breaks %s"), conflict.needsName, conflict.needsVersion, conflict.byName); pack_entry = g_list_find_custom (*packages, (gpointer)conflict.needsName, (GCompareFunc)eazel_install_package_name_compare); + g_message ("step 1"); dep = packagedata_new_from_rpm_conflict_reversed (conflict); + g_message ("step 2"); dep->archtype = g_strdup (pack->archtype); pack = (PackageData*)(pack_entry->data); + g_message ("step 3"); pack->status = PACKAGE_BREAKS_DEPENDENCY; + g_message ("step assertion"); g_assert (dep!=NULL); /* FIXME: bugzilla.eazel.com 1363 Here, it'd be cool to compare dep->name to pack->name to see if diff --git a/components/services/install/lib/eazel-install-xml-package-list.c b/components/services/install/lib/eazel-install-xml-package-list.c index 7bb5205ab..20ef3b7d4 100644 --- a/components/services/install/lib/eazel-install-xml-package-list.c +++ b/components/services/install/lib/eazel-install-xml-package-list.c @@ -49,7 +49,15 @@ parse_package (xmlNode* package, gboolean set_toplevel) { rv->version = g_strdup (xml_get_value (package, "VERSION")); rv->minor = g_strdup (xml_get_value (package, "MINOR")); rv->archtype = g_strdup (xml_get_value (package, "ARCH")); - rv->bytesize = atoi (xml_get_value (package, "BYTESIZE")); + { + char *tmp; + tmp = xml_get_value (package, "BYTESIZE"); + if (tmp) { + rv->bytesize = atoi (tmp); + } else { + rv->bytesize = 0; + } + } rv->summary = g_strdup (xml_get_value (package, "SUMMARY")); rv->distribution = trilobite_get_distribution (); if (set_toplevel) { diff --git a/components/services/trilobite/idl/trilobite-service.idl b/components/services/trilobite/idl/trilobite-service.idl index 955cfb235..004f4bec6 100644 --- a/components/services/trilobite/idl/trilobite-service.idl +++ b/components/services/trilobite/idl/trilobite-service.idl @@ -32,6 +32,14 @@ module Trilobite { */ string get_icon (); }; + + interface PasswordQueryClient : Bonobo::Unknown { + string get_password (in string prompt); + }; + + interface PasswordQuery : Bonobo::Unknown { + void set_query_client (in PasswordQueryClient client); + }; }; #endif diff --git a/components/services/trilobite/libtrilobite/Makefile.am b/components/services/trilobite/libtrilobite/Makefile.am index 4b31d4017..aadc2f33f 100644 --- a/components/services/trilobite/libtrilobite/Makefile.am +++ b/components/services/trilobite/libtrilobite/Makefile.am @@ -36,6 +36,8 @@ libtrilobiteinclude_HEADERS = \ trilobite-service.h \ trilobite-service-public.h \ trilobite-service-private.h \ + trilobite-service-passwordquery-public.h \ + trilobite-service-passwordquery-private.h \ trilobite-core-messaging.h \ trilobite-core-distribution.h \ trilobite-core-metadata-manager.h \ @@ -52,6 +54,7 @@ libtrilobite_la_SOURCES = \ trilobite-service-stubs.c \ trilobite-service-skels.c \ trilobite-service.c \ + trilobite-service-passwordquery.c \ trilobite-core-messaging.c \ trilobite-core-distribution.c \ trilobite-core-metadata-manager.c \ diff --git a/components/services/trilobite/libtrilobite/trilobite-service-passwordquery-private.h b/components/services/trilobite/libtrilobite/trilobite-service-passwordquery-private.h new file mode 100644 index 000000000..b5da4f8eb --- /dev/null +++ b/components/services/trilobite/libtrilobite/trilobite-service-passwordquery-private.h @@ -0,0 +1,33 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* + * Copyright (C) 2000 Eazel, Inc + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Authors: Eskil Heyn Olsen <eskil@eazel.com> + * + */ + +#ifndef TRILOBITE_PASSWORDQUERY_PRIVATE_H +#define TRILOBITE_PASSWORDQUERY_PRIVATE_H + +struct _TrilobitePasswordQueryPrivate { + gboolean destroyed; + gboolean alive; + +}; + +#endif /* TRILOBITE_PASSWORDQUERY_PRIVATE_H */ diff --git a/components/services/trilobite/libtrilobite/trilobite-service-passwordquery-public.h b/components/services/trilobite/libtrilobite/trilobite-service-passwordquery-public.h new file mode 100644 index 000000000..f73edcb99 --- /dev/null +++ b/components/services/trilobite/libtrilobite/trilobite-service-passwordquery-public.h @@ -0,0 +1,77 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* + * Copyright (C) 2000 Eazel, Inc + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Authors: Eskil Heyn Olsen <eskil@eazel.com> + * + */ + +/* trilobite-service.h: Interface for objects representing + the toplevel type for services ("trilobites"). + */ + +#ifndef TRILOBITE_PASSWORDQUERY_H +#define TRILOBITE_PASSWORDQUERY_H + +#include <libgnome/gnome-defs.h> +#include <bonobo/bonobo-object.h> + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#define TRILOBITE_TYPE_PASSWORDQUERY (trilobite_passwordquery_get_type ()) +#define TRILOBITE_PASSWORDQUERY(obj) (GTK_CHECK_CAST ((obj), TRILOBITE_TYPE_PASSWORDQUERY, TrilobitePasswordQuery)) +#define TRILOBITE_PASSWORDQUERY_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), TRILOBITE_TYPE_PASSWORDQUERY, TrilobitePasswordQueryClass)) +#define TRILOBITE_IS_PASSWORDQUERY(obj) (GTK_CHECK_TYPE ((obj), TRILOBITE_TYPE_PASSWORDQUERY)) +#define TRILOBITE_IS_PASSWORDQUERY_CLASS(klass)(GTK_CHECK_CLASS_TYPE ((obj), TRILOBITE_TYPE_PASSWORDQUERY)) + +typedef struct _TrilobitePasswordQuery TrilobitePasswordQuery; +typedef struct _TrilobitePasswordQueryClass TrilobitePasswordQueryClass; + +struct _TrilobitePasswordQueryClass +{ + BonoboObjectClass parent_class; + + + gpointer servant_init; + gpointer servant_fini; + gpointer servant_vepv; +}; + +typedef struct _TrilobitePasswordQueryPrivate TrilobitePasswordQueryPrivate; + +struct _TrilobitePasswordQuery +{ + BonoboObject parent; + TrilobitePasswordQueryPrivate *private; +}; + +GtkType trilobite_passwordquery_get_type (void); +gboolean trilobite_passwordquery_construct (TrilobitePasswordQuery *trilobite, + Trilobite_PasswordQuery corba_trilobite); +TrilobitePasswordQuery* trilobite_passwordquery_new (void); +POA_Trilobite_PasswordQuery__epv* trilobite_passwordquery_get_epv (void); +void trilobite_passwordquery_destroy (GtkObject *object); + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* TRILOBITE_PASSWORDQUERY_H */ diff --git a/components/services/trilobite/libtrilobite/trilobite-service-passwordquery.c b/components/services/trilobite/libtrilobite/trilobite-service-passwordquery.c new file mode 100644 index 000000000..93df74249 --- /dev/null +++ b/components/services/trilobite/libtrilobite/trilobite-service-passwordquery.c @@ -0,0 +1,243 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* + * Copyright (C) 2000 Eazel, Inc + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Authors: Eskil Heyn Olsen <eskil@eazel.com> + * + */ + +/* trilobite-service.c: Implementation for the toplevel + interface for trilobite objects */ + +#include <config.h> +#include <bonobo.h> + +#include "trilobite-service.h" +#include "trilobite-service-passwordquery-public.h" +#include "trilobite-service-passwordquery-private.h" + +enum { + LAST_SIGNAL +}; + +/* static guint trilobite_passwordquery_signals[LAST_SIGNAL] = { 0 }; */ + +static BonoboObjectClass *trilobite_passwordquery_parent_class; + +/***************************************** + Corba stuff +*****************************************/ + +static PortableServer_ServantBase__epv base_epv = { NULL, NULL, NULL }; + +typedef struct { + POA_Trilobite_PasswordQuery servant; + BonoboObject *bonobo_object; +} impl_POA_Trilobite_PasswordQuery; + +POA_Trilobite_PasswordQuery__epv* +trilobite_passwordquery_get_epv(void) +{ + POA_Trilobite_PasswordQuery__epv *epv; + + epv = g_new0 (POA_Trilobite_PasswordQuery__epv, 1); + + return epv; +}; + +/***************************************** + GTK+ object stuff +*****************************************/ + +void +trilobite_passwordquery_destroy (GtkObject *object) +{ + TrilobitePasswordQuery *trilobite; + /* g_message ("in trilobite_passwordquery_destroy"); */ + + g_return_if_fail (object != NULL); + g_return_if_fail (TRILOBITE_IS_PASSWORDQUERY (object)); + + trilobite = TRILOBITE_PASSWORDQUERY (object); + + if (trilobite->private != NULL) { + g_free (trilobite->private); + } + + if (GTK_OBJECT_CLASS (trilobite_passwordquery_parent_class)->destroy) { + /* g_message ("calling trilobite-passwordquery-parent->destroy ()"); */ + GTK_OBJECT_CLASS (trilobite_passwordquery_parent_class)->destroy (object); + } +} + +static void +trilobite_passwordquery_set_arg (GtkObject *object, + GtkArg *arg, + guint arg_id) +{ + TrilobitePasswordQuery *trilobite; + + g_assert (object != NULL); + g_assert (TRILOBITE_IS_PASSWORDQUERY (object)); + + trilobite = TRILOBITE_PASSWORDQUERY (object); + + switch (arg_id) { + } +} + +static void +trilobite_passwordquery_class_initialize (TrilobitePasswordQueryClass *klass) +{ + GtkObjectClass *object_class; + + /* g_message ("in trilobite_passwordquery_class_initialize"); */ + + object_class = (GtkObjectClass*) klass; + object_class->destroy = (void(*)(GtkObject*))trilobite_passwordquery_destroy; + object_class->set_arg = trilobite_passwordquery_set_arg; + + trilobite_passwordquery_parent_class = gtk_type_class (bonobo_object_get_type ()); + + klass->servant_init = POA_Trilobite_PasswordQuery__init; + klass->servant_fini = POA_Trilobite_PasswordQuery__fini; + + klass->servant_vepv = g_new0 (POA_Trilobite_PasswordQuery__vepv,1); + ((POA_Trilobite_PasswordQuery__vepv*)klass->servant_vepv)->_base_epv = &base_epv; + ((POA_Trilobite_PasswordQuery__vepv*)klass->servant_vepv)->Bonobo_Unknown_epv = bonobo_object_get_epv (); + ((POA_Trilobite_PasswordQuery__vepv*)klass->servant_vepv)->Trilobite_PasswordQuery_epv = trilobite_passwordquery_get_epv (); +}; + +gboolean +trilobite_passwordquery_construct (TrilobitePasswordQuery *trilobite, + Trilobite_PasswordQuery corba_trilobite) +{ + g_assert (trilobite != NULL); + g_assert (TRILOBITE_IS_PASSWORDQUERY (trilobite)); + g_return_val_if_fail (corba_trilobite != CORBA_OBJECT_NIL, FALSE); + + if (!bonobo_object_construct (BONOBO_OBJECT (trilobite), (CORBA_Object) corba_trilobite)) { + return FALSE; + } + + return TRUE; +} + +static Trilobite_PasswordQuery +trilobite_passwordquery_create_corba_object (BonoboObject *trilobite) +{ + impl_POA_Trilobite_PasswordQuery *servant; + void (*servant_init) (PortableServer_Servant servant, CORBA_Environment *ev); + CORBA_Environment ev; + + /* g_message ("in trilobite_passwordquery_create_corba_object"); */ + + g_assert (trilobite != NULL); + + CORBA_exception_init(&ev); + + servant = (impl_POA_Trilobite_PasswordQuery*) g_new0 (BonoboObjectServant, 1); + ((POA_Trilobite_PasswordQuery*) servant)->vepv = TRILOBITE_PASSWORDQUERY_CLASS ( GTK_OBJECT (trilobite)->klass)->servant_vepv; + servant->bonobo_object = trilobite; + + servant_init = TRILOBITE_PASSWORDQUERY_CLASS ( GTK_OBJECT (trilobite)->klass)->servant_init; + servant_init ((PortableServer_Servant)servant, &ev); + ORBIT_OBJECT_KEY (((POA_Trilobite_PasswordQuery*) servant)->_private)->object = NULL; + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("Cannot instantiate Trilobite_PasswordQuery corba object"); + g_free (servant); + CORBA_exception_free (&ev); + return CORBA_OBJECT_NIL; + } + + CORBA_exception_free (&ev); + + return (Trilobite_PasswordQuery) bonobo_object_activate_servant (trilobite, servant); +} + +static void +trilobite_passwordquery_initialize (TrilobitePasswordQuery *trilobite) +{ + Trilobite_PasswordQuery corba_trilobite; + + /* g_message ("in trilobite_passwordquery_initialize"); */ + + g_return_if_fail (trilobite != NULL); + g_return_if_fail (TRILOBITE_IS_PASSWORDQUERY (trilobite)); + + corba_trilobite = trilobite_passwordquery_create_corba_object (BONOBO_OBJECT (trilobite)); + + if (trilobite_passwordquery_construct (trilobite, corba_trilobite) == FALSE) { + trilobite_passwordquery_destroy (GTK_OBJECT (trilobite)); + trilobite = NULL; + } + + trilobite->private = g_new0 (TrilobitePasswordQueryPrivate,1); + + trilobite->private->destroyed = FALSE; + trilobite->private->alive = TRUE; +} + +GtkType +trilobite_passwordquery_get_type (void) +{ + static GtkType trilobite_passwordquery_type = 0; + + /* g_message ("into trilobite_passwordquery_get_type"); */ + + /* First time it's called ? */ + if (!trilobite_passwordquery_type) + { + static const GtkTypeInfo trilobite_passwordquery_info = + { + "TrilobitePasswordQuery", + sizeof (TrilobitePasswordQuery), + sizeof (TrilobitePasswordQueryClass), + (GtkClassInitFunc) trilobite_passwordquery_class_initialize, + (GtkObjectInitFunc) trilobite_passwordquery_initialize, + /* reserved_1 */ NULL, + /* reserved_2 */ NULL, + (GtkClassInitFunc) NULL, + }; + + /* Get a unique GtkType */ + trilobite_passwordquery_type = gtk_type_unique (bonobo_object_get_type (), &trilobite_passwordquery_info); + } + + return trilobite_passwordquery_type; +} + +TrilobitePasswordQuery* +trilobite_passwordquery_new() +{ + TrilobitePasswordQuery *trilobite; + + /* g_message ("in trilobite_passwordquery_new"); */ + + trilobite = TRILOBITE_PASSWORDQUERY (gtk_type_new (TRILOBITE_TYPE_PASSWORDQUERY)); + + if (trilobite == NULL) { + g_warning ("Could not create a TrilobitePasswordQuery*"); + } + + trilobite_passwordquery_initialize (trilobite); + + return trilobite; +} + |