aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/ebook/e-book-listener.c
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/backend/ebook/e-book-listener.c')
-rw-r--r--addressbook/backend/ebook/e-book-listener.c394
1 files changed, 0 insertions, 394 deletions
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 <config.h>
-#include <bonobo/bonobo-main.h>
-#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);