From 200606f92810d3de322e5ee96f8326e1a656f8bb Mon Sep 17 00:00:00 2001 From: JP Rosevear Date: Fri, 7 Nov 2003 05:52:24 +0000 Subject: Various changes to merge in evolution-data-server reliance. svn path=/trunk/; revision=23206 --- addressbook/backend/ebook/e-book-listener.c | 394 ---------------------------- 1 file changed, 394 deletions(-) delete mode 100644 addressbook/backend/ebook/e-book-listener.c (limited to 'addressbook/backend/ebook/e-book-listener.c') diff --git a/addressbook/backend/ebook/e-book-listener.c b/addressbook/backend/ebook/e-book-listener.c deleted file mode 100644 index 26ed54d2ec..0000000000 --- a/addressbook/backend/ebook/e-book-listener.c +++ /dev/null @@ -1,394 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* - * Exports the BookListener interface. Maintains a queue of messages - * which come in on the interface. - * - * Author: - * Nat Friedman (nat@ximian.com) - * - * Copyright 2000, Ximian, Inc. - */ - -#include -#include -#include "e-contact.h" -#include "e-book-listener.h" -#include "e-book-marshal.h" - -static EBookStatus e_book_listener_convert_status (GNOME_Evolution_Addressbook_CallStatus status); - -enum { - RESPONSE, - LAST_SIGNAL -}; - -static guint e_book_listener_signals [LAST_SIGNAL]; - -static BonoboObjectClass *parent_class; - -struct _EBookListenerPrivate { - guint stopped : 1; -}; - -static EBookStatus -e_book_listener_convert_status (const GNOME_Evolution_Addressbook_CallStatus status) -{ - switch (status) { - case GNOME_Evolution_Addressbook_Success: - return E_BOOK_ERROR_OK; - case GNOME_Evolution_Addressbook_RepositoryOffline: - return E_BOOK_ERROR_REPOSITORY_OFFLINE; - case GNOME_Evolution_Addressbook_PermissionDenied: - return E_BOOK_ERROR_PERMISSION_DENIED; - case GNOME_Evolution_Addressbook_ContactNotFound: - return E_BOOK_ERROR_CONTACT_NOT_FOUND; - case GNOME_Evolution_Addressbook_ContactIdAlreadyExists: - return E_BOOK_ERROR_CONTACT_ID_ALREADY_EXISTS; - case GNOME_Evolution_Addressbook_AuthenticationFailed: - return E_BOOK_ERROR_AUTHENTICATION_FAILED; - case GNOME_Evolution_Addressbook_AuthenticationRequired: - return E_BOOK_ERROR_AUTHENTICATION_REQUIRED; - case GNOME_Evolution_Addressbook_TLSNotAvailable: - return E_BOOK_ERROR_TLS_NOT_AVAILABLE; - case GNOME_Evolution_Addressbook_NoSuchBook: - return E_BOOK_ERROR_NO_SUCH_BOOK; - case GNOME_Evolution_Addressbook_OtherError: - default: - return E_BOOK_ERROR_OTHER_ERROR; - } -} - -static void -impl_BookListener_respond_create_contact (PortableServer_Servant servant, - const GNOME_Evolution_Addressbook_CallStatus status, - const CORBA_char* id, - CORBA_Environment *ev) -{ - EBookListener *listener = E_BOOK_LISTENER (bonobo_object (servant)); - EBookListenerResponse response; - - response.op = CreateContactResponse; - response.status = e_book_listener_convert_status (status); - response.id = g_strdup (id); - - g_signal_emit (listener, e_book_listener_signals [RESPONSE], 0, &response); - - g_free (response.id); -} - -static void -impl_BookListener_respond_remove_contacts (PortableServer_Servant servant, - const GNOME_Evolution_Addressbook_CallStatus status, - CORBA_Environment *ev) -{ - EBookListener *listener = E_BOOK_LISTENER (bonobo_object (servant)); - EBookListenerResponse response; - - response.op = RemoveContactResponse; - response.status = e_book_listener_convert_status (status); - - g_signal_emit (listener, e_book_listener_signals [RESPONSE], 0, &response); -} - -static void -impl_BookListener_respond_modify_contact (PortableServer_Servant servant, - const GNOME_Evolution_Addressbook_CallStatus status, - CORBA_Environment *ev) -{ - EBookListener *listener = E_BOOK_LISTENER (bonobo_object (servant)); - EBookListenerResponse response; - - response.op = ModifyContactResponse; - response.status = e_book_listener_convert_status (status); - - g_signal_emit (listener, e_book_listener_signals [RESPONSE], 0, &response); -} - -static void -impl_BookListener_respond_get_contact (PortableServer_Servant servant, - const GNOME_Evolution_Addressbook_CallStatus status, - const CORBA_char* card, - CORBA_Environment *ev) -{ - EBookListener *listener = E_BOOK_LISTENER (bonobo_object (servant)); - EBookListenerResponse response; - - response.op = GetContactResponse; - response.status = e_book_listener_convert_status (status); - response.vcard = g_strdup (card); - - g_signal_emit (listener, e_book_listener_signals [RESPONSE], 0, &response); - - g_free (response.vcard); -} - -static void -impl_BookListener_respond_get_contact_list (PortableServer_Servant servant, - const GNOME_Evolution_Addressbook_CallStatus status, - const GNOME_Evolution_Addressbook_stringlist *cards, - CORBA_Environment *ev) -{ - EBookListener *listener = E_BOOK_LISTENER (bonobo_object (servant)); - EBookListenerResponse response; - int i; - - if (listener->priv->stopped) - return; - - response.op = GetContactListResponse; - response.status = e_book_listener_convert_status (status); - response.list = NULL; - - for (i = 0; i < cards->_length; i ++) { - response.list = g_list_prepend (response.list, e_contact_new_from_vcard (cards->_buffer[i])); - } - - g_signal_emit (listener, e_book_listener_signals [RESPONSE], 0, &response); - - /* XXX free response.list? */ -} - -static void -impl_BookListener_respond_get_view (PortableServer_Servant servant, - const GNOME_Evolution_Addressbook_CallStatus status, - const GNOME_Evolution_Addressbook_BookView book_view, - CORBA_Environment *ev) -{ - EBookListener *listener = E_BOOK_LISTENER (bonobo_object (servant)); - EBookListenerResponse response; - - printf ("impl_BookListener_respond_get_view\n"); - - if (listener->priv->stopped) - return; - - response.op = GetBookViewResponse; - response.status = e_book_listener_convert_status (status); - response.book_view = bonobo_object_dup_ref (book_view, ev); - - g_signal_emit (listener, e_book_listener_signals [RESPONSE], 0, &response); -} - -static void -impl_BookListener_respond_get_changes (PortableServer_Servant servant, - const GNOME_Evolution_Addressbook_CallStatus status, - const GNOME_Evolution_Addressbook_BookChangeList *changes, - CORBA_Environment *ev) -{ - EBookListener *listener = E_BOOK_LISTENER (bonobo_object (servant)); - EBookListenerResponse response; - int i; - - response.op = GetChangesResponse; - response.status = e_book_listener_convert_status (status); - response.list = NULL; - - for (i = 0; i < changes->_length; i ++) { - EBookChange *change = g_new (EBookChange, 1); - GNOME_Evolution_Addressbook_BookChangeItem corba_change = changes->_buffer[i]; - - switch (corba_change.changeType) { - case GNOME_Evolution_Addressbook_ContactAdded: - change->change_type = E_BOOK_CHANGE_CARD_ADDED; - break; - case GNOME_Evolution_Addressbook_ContactDeleted: - change->change_type = E_BOOK_CHANGE_CARD_DELETED; - break; - case GNOME_Evolution_Addressbook_ContactModified: - change->change_type = E_BOOK_CHANGE_CARD_MODIFIED; - break; - } - change->contact = e_contact_new_from_vcard (corba_change.vcard); - - response.list = g_list_prepend (response.list, change); - } - - g_signal_emit (listener, e_book_listener_signals [RESPONSE], 0, &response); -} - -static void -impl_BookListener_respond_open_book (PortableServer_Servant servant, - const GNOME_Evolution_Addressbook_CallStatus status, - CORBA_Environment *ev) -{ - EBookListener *listener = E_BOOK_LISTENER (bonobo_object (servant)); - EBookListenerResponse response; - - response.op = OpenBookResponse; - response.status = e_book_listener_convert_status (status); - - g_signal_emit (listener, e_book_listener_signals [RESPONSE], 0, &response); -} - -static void -impl_BookListener_respond_remove_book (PortableServer_Servant servant, - const GNOME_Evolution_Addressbook_CallStatus status, - CORBA_Environment *ev) -{ - EBookListener *listener = E_BOOK_LISTENER (bonobo_object (servant)); - EBookListenerResponse response; - - response.op = RemoveBookResponse; - response.status = e_book_listener_convert_status (status); - - g_signal_emit (listener, e_book_listener_signals [RESPONSE], 0, &response); -} - -static void -impl_BookListener_respond_authentication_result (PortableServer_Servant servant, - const GNOME_Evolution_Addressbook_CallStatus status, - CORBA_Environment *ev) -{ - EBookListener *listener = E_BOOK_LISTENER (bonobo_object (servant)); - EBookListenerResponse response; - - response.op = AuthenticationResponse; - response.status = e_book_listener_convert_status (status); - - g_signal_emit (listener, e_book_listener_signals [RESPONSE], 0, &response); -} - -static void -impl_BookListener_respond_get_supported_fields (PortableServer_Servant servant, - const GNOME_Evolution_Addressbook_CallStatus status, - const GNOME_Evolution_Addressbook_stringlist *fields, - CORBA_Environment *ev) -{ - EBookListener *listener = E_BOOK_LISTENER (bonobo_object (servant)); - EBookListenerResponse response; - int i; - - response.op = GetSupportedFieldsResponse; - response.status = e_book_listener_convert_status (status); - response.list = NULL; - - for (i = 0; i < fields->_length; i ++) - response.list = g_list_prepend (response.list, g_strdup (fields->_buffer[i])); - - g_signal_emit (listener, e_book_listener_signals [RESPONSE], 0, &response); -} - -static void -impl_BookListener_respond_get_supported_auth_methods (PortableServer_Servant servant, - const GNOME_Evolution_Addressbook_CallStatus status, - const GNOME_Evolution_Addressbook_stringlist *auth_methods, - CORBA_Environment *ev) -{ - EBookListener *listener = E_BOOK_LISTENER (bonobo_object (servant)); - EBookListenerResponse response; - int i; - - response.op = GetSupportedAuthMethodsResponse; - response.status = e_book_listener_convert_status (status); - response.list = NULL; - - for (i = 0; i < auth_methods->_length; i ++) - response.list = g_list_prepend (response.list, g_strdup (auth_methods->_buffer[i])); - - g_signal_emit (listener, e_book_listener_signals [RESPONSE], 0, &response); -} - -static void -impl_BookListener_report_writable (PortableServer_Servant servant, - const CORBA_boolean writable, - CORBA_Environment *ev) -{ - EBookListener *listener = E_BOOK_LISTENER (bonobo_object (servant)); - EBookListenerResponse response; - - response.op = WritableStatusEvent; - response.writable = writable; - - g_signal_emit (listener, e_book_listener_signals [RESPONSE], 0, &response); -} - -static void -impl_BookListener_respond_progress (PortableServer_Servant servant, - const CORBA_char * message, - const CORBA_short percent, - CORBA_Environment *ev) -{ -} - -static void -e_book_listener_construct (EBookListener *listener) -{ - /* nothing to do here */ -} - -/** - * e_book_listener_new: - * @book: the #EBook for which the listener is to be bound - * - * Creates and returns a new #EBookListener for the book. - * - * Returns: a new #EBookListener - */ -EBookListener * -e_book_listener_new () -{ - EBookListener *listener; - - listener = g_object_new (E_TYPE_BOOK_LISTENER, - "poa", bonobo_poa_get_threaded (ORBIT_THREAD_HINT_PER_REQUEST, NULL), - NULL); - - e_book_listener_construct (listener); - - return listener; -} - -static void -e_book_listener_init (EBookListener *listener) -{ - listener->priv = g_new0 (EBookListenerPrivate, 1); -} - -void -e_book_listener_stop (EBookListener *listener) -{ - g_return_if_fail (E_IS_BOOK_LISTENER (listener)); - - listener->priv->stopped = TRUE; -} - -static void -e_book_listener_class_init (EBookListenerClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - POA_GNOME_Evolution_Addressbook_BookListener__epv *epv; - - parent_class = g_type_class_ref (BONOBO_TYPE_OBJECT); - - e_book_listener_signals [RESPONSE] = - g_signal_new ("response", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EBookListenerClass, response), - NULL, NULL, - e_book_marshal_NONE__POINTER, - G_TYPE_NONE, 1, - G_TYPE_POINTER); - - epv = &klass->epv; - epv->notifyProgress = impl_BookListener_respond_progress; - epv->notifyBookOpened = impl_BookListener_respond_open_book; - epv->notifyBookRemoved = impl_BookListener_respond_remove_book; - epv->notifyContactCreated = impl_BookListener_respond_create_contact; - epv->notifyContactsRemoved = impl_BookListener_respond_remove_contacts; - epv->notifyContactModified = impl_BookListener_respond_modify_contact; - epv->notifyAuthenticationResult = impl_BookListener_respond_authentication_result; - epv->notifySupportedFields = impl_BookListener_respond_get_supported_fields; - epv->notifySupportedAuthMethods = impl_BookListener_respond_get_supported_auth_methods; - epv->notifyContactRequested = impl_BookListener_respond_get_contact; - epv->notifyContactListRequested = impl_BookListener_respond_get_contact_list; - epv->notifyViewRequested = impl_BookListener_respond_get_view; - epv->notifyChangesRequested = impl_BookListener_respond_get_changes; - epv->notifyWritable = impl_BookListener_report_writable; -} - -BONOBO_TYPE_FUNC_FULL ( - EBookListener, - GNOME_Evolution_Addressbook_BookListener, - BONOBO_TYPE_OBJECT, - e_book_listener); -- cgit v1.2.3