diff options
author | Christopher James Lahey <clahey@ximian.com> | 2001-08-14 10:17:04 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2001-08-14 10:17:04 +0800 |
commit | 476458f355b639cb725188d9d8e767affa71f4ab (patch) | |
tree | 8d6686abbf6334ad7b65aa8ea15895d58e88b6bd /addressbook/backend/ebook/e-book-listener.c | |
parent | 3157a507b2074766bbd88300cec543a28418d443 (diff) | |
download | gsoc2013-evolution-476458f355b639cb725188d9d8e767affa71f4ab.tar gsoc2013-evolution-476458f355b639cb725188d9d8e767affa71f4ab.tar.gz gsoc2013-evolution-476458f355b639cb725188d9d8e767affa71f4ab.tar.bz2 gsoc2013-evolution-476458f355b639cb725188d9d8e767affa71f4ab.tar.lz gsoc2013-evolution-476458f355b639cb725188d9d8e767affa71f4ab.tar.xz gsoc2013-evolution-476458f355b639cb725188d9d8e767affa71f4ab.tar.zst gsoc2013-evolution-476458f355b639cb725188d9d8e767affa71f4ab.zip |
Changed get_card to be asyncronous.
2001-08-13 Christopher James Lahey <clahey@ximian.com>
* backend/ebook/e-book-listener.c,
backend/ebook/e-book-listener.h, backend/ebook/e-book.c,
backend/ebook/e-book.h, backend/idl/addressbook.idl,
backend/pas/pas-backend-file.c, backend/pas/pas-book.c,
backend/pas/pas-book.h: Changed get_card to be asyncronous.
* backend/ebook/e-card.c, backend/ebook/test-client.c: Changed
these to deal with the new get_card functionality.
svn path=/trunk/; revision=11984
Diffstat (limited to 'addressbook/backend/ebook/e-book-listener.c')
-rw-r--r-- | addressbook/backend/ebook/e-book-listener.c | 58 |
1 files changed, 46 insertions, 12 deletions
diff --git a/addressbook/backend/ebook/e-book-listener.c b/addressbook/backend/ebook/e-book-listener.c index 285c6646b2..aa05a87a2b 100644 --- a/addressbook/backend/ebook/e-book-listener.c +++ b/addressbook/backend/ebook/e-book-listener.c @@ -149,6 +149,25 @@ e_book_listener_queue_create_card_response (EBookListener *listener, } static void +e_book_listener_queue_get_vcard_response (EBookListener *listener, + EBookStatus status, + const char *vcard) +{ + EBookListenerResponse *resp; + + if (listener->priv->stopped) + return; + + resp = g_new0 (EBookListenerResponse, 1); + + resp->op = GetCardResponse; + resp->status = status; + resp->vcard = g_strdup (vcard); + + e_book_listener_queue_response (listener, resp); +} + +static void e_book_listener_queue_get_cursor_response (EBookListener *listener, EBookStatus status, GNOME_Evolution_Addressbook_CardCursor cursor) @@ -319,6 +338,20 @@ 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, + CORBA_Environment *ev) +{ + EBookListener *listener = E_BOOK_LISTENER (bonobo_object_from_servant (servant)); + + e_book_listener_queue_get_vcard_response ( + listener, + e_book_listener_convert_status (status), + g_strdup (card)); +} + +static void impl_BookListener_respond_get_cursor (PortableServer_Servant servant, const GNOME_Evolution_Addressbook_BookListener_CallStatus status, const GNOME_Evolution_Addressbook_CardCursor cursor, @@ -692,24 +725,25 @@ e_book_listener_get_epv (void) { POA_GNOME_Evolution_Addressbook_BookListener__epv *epv; - 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->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->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->notifySupportedFields = impl_BookListener_response_get_supported_fields; - epv->notifyCursorRequested = impl_BookListener_respond_get_cursor; - epv->notifyViewRequested = impl_BookListener_respond_get_view; - epv->notifyChangesRequested = impl_BookListener_respond_get_changes; + 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; + epv->notifyConnectionStatus = impl_BookListener_report_connection_status; + epv->notifyWritable = impl_BookListener_report_writable; return epv; } |