aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/ebook/e-book-listener.c
diff options
context:
space:
mode:
authorChris Toshok <toshok@ximian.com>2002-11-03 14:14:01 +0800
committerChris Toshok <toshok@src.gnome.org>2002-11-03 14:14:01 +0800
commitf54b808bf2b6c6649f33c062036a207fe152bdd8 (patch)
tree9e4f2e0a40597c4ea425ba60501f20f5403ed76f /addressbook/backend/ebook/e-book-listener.c
parent805e75e7d9315f8cb9f6a7213fc373a8a873a242 (diff)
downloadgsoc2013-evolution-f54b808bf2b6c6649f33c062036a207fe152bdd8.tar
gsoc2013-evolution-f54b808bf2b6c6649f33c062036a207fe152bdd8.tar.gz
gsoc2013-evolution-f54b808bf2b6c6649f33c062036a207fe152bdd8.tar.bz2
gsoc2013-evolution-f54b808bf2b6c6649f33c062036a207fe152bdd8.tar.lz
gsoc2013-evolution-f54b808bf2b6c6649f33c062036a207fe152bdd8.tar.xz
gsoc2013-evolution-f54b808bf2b6c6649f33c062036a207fe152bdd8.tar.zst
gsoc2013-evolution-f54b808bf2b6c6649f33c062036a207fe152bdd8.zip
just include glib.h instead of the gtk stuff.
2002-11-02 Chris Toshok <toshok@ximian.com> * backend/ebook/e-book-types.h: just include glib.h instead of the gtk stuff. * backend/ebook/e-book-listener.[ch]: convert to GObject/bonobo-activation/etc/etc. * e-book-util.[ch]: same. * e-book-view-listener.[ch]: same. * e-book-view.[ch]: same. * e-book.[ch]: same. * e-card-compare.[ch]: same. * e-card-cursor.[ch]: same. * e-card-simple.[ch]: same. * e-card.[ch]: same. * e-destination.[ch]: same. * evolution-ldif-importer.c: same. * evolution-vcard-importer.c: same. * load-gnomecard-addressbook.c: same. * load-pine-addressbok.c: same. * test-card.c: same. * test-client-list.c: same. * test-client.c: same. * backend/ebook/Makefile.am: add e-book-marshal.c to SOURCES, add e-book-marshal.[ch] to CLEANFILES, and add e-book-marshal.list to EXTRA_DIST. Also, remove the camel libs from the test LDADD's, and leave e-destination.[ch] out of the build. * backend/ebook/.cvsignore: ignore e-book-marshal.[ch] * backend/ebook/e-book-marshal.list: marshallers for e-book. svn path=/trunk/; revision=18505
Diffstat (limited to 'addressbook/backend/ebook/e-book-listener.c')
-rw-r--r--addressbook/backend/ebook/e-book-listener.c177
1 files changed, 104 insertions, 73 deletions
diff --git a/addressbook/backend/ebook/e-book-listener.c b/addressbook/backend/ebook/e-book-listener.c
index ca366386f2..ed3fad586a 100644
--- a/addressbook/backend/ebook/e-book-listener.c
+++ b/addressbook/backend/ebook/e-book-listener.c
@@ -10,8 +10,9 @@
*/
#include <config.h>
-#include <gtk/gtksignal.h>
+#include <bonobo/bonobo-main.h>
#include "e-book-listener.h"
+#include "e-book-marshal.h"
static EBookStatus e_book_listener_convert_status (GNOME_Evolution_Addressbook_BookListener_CallStatus status);
@@ -22,10 +23,13 @@ enum {
static guint e_book_listener_signals [LAST_SIGNAL];
-static BonoboObjectClass *e_book_listener_parent_class;
+static BonoboObjectClass *parent_class;
POA_GNOME_Evolution_Addressbook_BookListener__vepv e_book_listener_vepv;
struct _EBookListenerPrivate {
+ EBookListenerServant *servant;
+ GNOME_Evolution_Addressbook_BookListener corba_objref;
+
GList *response_queue;
gint timeout_id;
@@ -102,7 +106,7 @@ e_book_listener_check_queue (EBookListener *listener)
listener->priv->timeout_lock = TRUE;
if (listener->priv->response_queue != NULL && !listener->priv->stopped) {
- gtk_signal_emit (GTK_OBJECT (listener), e_book_listener_signals [RESPONSES_QUEUED]);
+ g_signal_emit (listener, e_book_listener_signals [RESPONSES_QUEUED], 0);
}
if (listener->priv->response_queue == NULL || listener->priv->stopped) {
@@ -372,7 +376,7 @@ e_book_listener_queue_get_supported_fields_response (EBookListener *listener,
static void
impl_BookListener_respond_create_card (PortableServer_Servant servant,
const GNOME_Evolution_Addressbook_BookListener_CallStatus status,
- const GNOME_Evolution_Addressbook_CardId id,
+ const CORBA_char* id,
CORBA_Environment *ev)
{
EBookListener *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));
@@ -410,7 +414,7 @@ impl_BookListener_respond_modify_card (PortableServer_Servant servant,
static void
impl_BookListener_respond_get_vcard (PortableServer_Servant servant,
const GNOME_Evolution_Addressbook_BookListener_CallStatus status,
- const GNOME_Evolution_Addressbook_VCard card,
+ const CORBA_char* card,
CORBA_Environment *ev)
{
EBookListener *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant));
@@ -646,41 +650,70 @@ e_book_listener_convert_status (const GNOME_Evolution_Addressbook_BookListener_C
}
}
-static EBookListener *
-e_book_listener_construct (EBookListener *listener)
+void
+e_book_listener_construct (EBookListener *listener,
+ GNOME_Evolution_Addressbook_BookListener corba_objref)
{
- POA_GNOME_Evolution_Addressbook_BookListener *servant;
- CORBA_Environment ev;
- CORBA_Object obj;
+ EBookListenerPrivate *priv;
+
+ g_return_if_fail (listener != NULL);
+ g_return_if_fail (corba_objref != CORBA_OBJECT_NIL);
- g_assert (listener != NULL);
- g_assert (E_IS_BOOK_LISTENER (listener));
+ priv = listener->priv;
- servant = (POA_GNOME_Evolution_Addressbook_BookListener *) g_new0 (BonoboObjectServant, 1);
- servant->vepv = &e_book_listener_vepv;
+ g_return_if_fail (priv->corba_objref == CORBA_OBJECT_NIL);
+
+ priv->corba_objref = corba_objref;
+}
+
+static EBookListenerServant *
+create_servant (EBookListener *listener)
+{
+ EBookListenerServant *servant;
+ POA_GNOME_Evolution_Addressbook_BookListener *corba_servant;
+ CORBA_Environment ev;
CORBA_exception_init (&ev);
- POA_GNOME_Evolution_Addressbook_BookListener__init ((PortableServer_Servant) servant, &ev);
+ servant = g_new0 (EBookListenerServant, 1);
+ corba_servant = (POA_GNOME_Evolution_Addressbook_BookListener *) servant;
+
+ corba_servant->vepv = &e_book_listener_vepv;
+ POA_GNOME_Evolution_Addressbook_BookListener__init ((PortableServer_Servant) corba_servant, &ev);
if (ev._major != CORBA_NO_EXCEPTION) {
g_free (servant);
CORBA_exception_free (&ev);
-
return NULL;
}
+ servant->object = listener;
+
CORBA_exception_free (&ev);
- obj = bonobo_object_activate_servant (BONOBO_OBJECT (listener), servant);
- if (obj == CORBA_OBJECT_NIL) {
- g_free (servant);
+ return servant;
+}
- return NULL;
+static GNOME_Evolution_Addressbook_BookListener
+activate_servant (EBookListener *listener,
+ POA_GNOME_Evolution_Addressbook_BookListener *servant)
+{
+ GNOME_Evolution_Addressbook_BookListener corba_object;
+ CORBA_Environment ev;
+
+ CORBA_exception_init (&ev);
+
+ CORBA_free (PortableServer_POA_activate_object (bonobo_poa (), servant, &ev));
+
+ corba_object = PortableServer_POA_servant_to_reference (bonobo_poa(), servant, &ev);
+
+ if (ev._major == CORBA_NO_EXCEPTION && ! CORBA_Object_is_nil (corba_object, &ev)) {
+ CORBA_exception_free (&ev);
+ return corba_object;
}
- bonobo_object_construct (BONOBO_OBJECT (listener), obj);
+ CORBA_exception_free (&ev);
- return listener;
+ return CORBA_OBJECT_NIL;
}
/**
@@ -695,26 +728,25 @@ EBookListener *
e_book_listener_new ()
{
EBookListener *listener;
- EBookListener *retval;
+ EBookListenerPrivate *priv;
+ GNOME_Evolution_Addressbook_BookListener corba_objref;
- listener = gtk_type_new (E_BOOK_LISTENER_TYPE);
+ listener = g_object_new (E_TYPE_BOOK_LISTENER, NULL);
+ priv = listener->priv;
- retval = e_book_listener_construct (listener);
+ priv->servant = create_servant (listener);
+ corba_objref = activate_servant (listener, (POA_GNOME_Evolution_Addressbook_BookListener *) priv->servant);
- if (retval == NULL) {
- g_warning ("e_book_listener_new: Error constructing "
- "EBookListener!\n");
- bonobo_object_unref (BONOBO_OBJECT (listener));
- return NULL;
- }
+ e_book_listener_construct (listener, corba_objref);
- return retval;
+ return listener;
}
static void
e_book_listener_init (EBookListener *listener)
{
listener->priv = g_new0 (EBookListenerPrivate, 1);
+ listener->priv->corba_objref = CORBA_OBJECT_NIL;
}
void
@@ -726,7 +758,7 @@ e_book_listener_stop (EBookListener *listener)
}
static void
-e_book_listener_destroy (GtkObject *object)
+e_book_listener_dispose (GObject *object)
{
EBookListener *listener = E_BOOK_LISTENER (object);
GList *l;
@@ -746,88 +778,87 @@ e_book_listener_destroy (GtkObject *object)
g_list_free (listener->priv->response_queue);
g_free (listener->priv);
-
- GTK_OBJECT_CLASS (e_book_listener_parent_class)->destroy (object);
+
+ G_OBJECT_CLASS (parent_class)->dispose (object);
}
-POA_GNOME_Evolution_Addressbook_BookListener__epv *
-e_book_listener_get_epv (void)
+static void
+corba_class_init (void)
{
+ POA_GNOME_Evolution_Addressbook_BookListener__vepv *vepv;
POA_GNOME_Evolution_Addressbook_BookListener__epv *epv;
+ PortableServer_ServantBase__epv *base_epv;
+
+ base_epv = g_new0 (PortableServer_ServantBase__epv, 1);
+ base_epv->_private = NULL;
+ base_epv->finalize = NULL;
+ base_epv->default_POA = NULL;
- epv = g_new0 (POA_GNOME_Evolution_Addressbook_BookListener__epv, 1);
+
+ epv = g_new0 (POA_GNOME_Evolution_Addressbook_BookListener__epv, 1);
epv->notifyOpenBookProgress = impl_BookListener_report_open_book_progress;
epv->notifyBookOpened = impl_BookListener_respond_open_book;
-
epv->notifyCardCreated = impl_BookListener_respond_create_card;
epv->notifyCardRemoved = impl_BookListener_respond_remove_card;
epv->notifyCardModified = impl_BookListener_respond_modify_card;
-
epv->notifyAuthenticationResult = impl_BookListener_respond_authentication_result;
epv->notifySupportedFields = impl_BookListener_response_get_supported_fields;
-
epv->notifyCardRequested = impl_BookListener_respond_get_vcard;
epv->notifyCursorRequested = impl_BookListener_respond_get_cursor;
epv->notifyViewRequested = impl_BookListener_respond_get_view;
epv->notifyChangesRequested = impl_BookListener_respond_get_changes;
-
epv->notifyConnectionStatus = impl_BookListener_report_connection_status;
epv->notifyWritable = impl_BookListener_report_writable;
- return epv;
-}
-
-static void
-e_book_listener_corba_class_init (void)
-{
- e_book_listener_vepv.Bonobo_Unknown_epv = bonobo_object_get_epv ();
- e_book_listener_vepv.GNOME_Evolution_Addressbook_BookListener_epv = e_book_listener_get_epv ();
+ vepv = &e_book_listener_vepv;
+ vepv->_base_epv = base_epv;
+ vepv->GNOME_Evolution_Addressbook_BookListener_epv = epv;
}
static void
e_book_listener_class_init (EBookListenerClass *klass)
{
- GtkObjectClass *object_class = (GtkObjectClass *) klass;
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- e_book_listener_parent_class = gtk_type_class (bonobo_object_get_type ());
+ parent_class = g_type_class_ref (BONOBO_TYPE_OBJECT);
e_book_listener_signals [RESPONSES_QUEUED] =
- gtk_signal_new ("responses_queued",
- GTK_RUN_LAST,
- object_class->type,
- GTK_SIGNAL_OFFSET (EBookListenerClass, responses_queued),
- gtk_marshal_NONE__NONE,
- GTK_TYPE_NONE, 0);
-
- gtk_object_class_add_signals (object_class, e_book_listener_signals, LAST_SIGNAL);
+ g_signal_new ("responses_queued",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (EBookListenerClass, responses_queued),
+ NULL, NULL,
+ e_book_marshal_NONE__NONE,
+ G_TYPE_NONE, 0);
- object_class->destroy = e_book_listener_destroy;
+ object_class->dispose = e_book_listener_dispose;
- e_book_listener_corba_class_init ();
+ corba_class_init ();
}
/**
* e_book_listener_get_type:
*/
-GtkType
+GType
e_book_listener_get_type (void)
{
- static GtkType type = 0;
+ static GType type = 0;
if (! type) {
- GtkTypeInfo info = {
- "EBookListener",
- sizeof (EBookListener),
+ GTypeInfo info = {
sizeof (EBookListenerClass),
- (GtkClassInitFunc) e_book_listener_class_init,
- (GtkObjectInitFunc) e_book_listener_init,
- NULL, /* reserved 1 */
- NULL, /* reserved 2 */
- (GtkClassInitFunc) NULL
+ NULL, /* base_class_init */
+ NULL, /* base_class_finalize */
+ (GClassInitFunc) e_book_listener_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (EBookListener),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) e_book_listener_init
};
- type = gtk_type_unique (bonobo_object_get_type (), &info);
+ type = g_type_register_static (G_TYPE_OBJECT, "EBookListener", &info, 0);
}
return type;