diff options
Diffstat (limited to 'addressbook/backend/pas/pas-book.c')
-rw-r--r-- | addressbook/backend/pas/pas-book.c | 64 |
1 files changed, 63 insertions, 1 deletions
diff --git a/addressbook/backend/pas/pas-book.c b/addressbook/backend/pas/pas-book.c index 4cd51237a1..6a8c17a584 100644 --- a/addressbook/backend/pas/pas-book.c +++ b/addressbook/backend/pas/pas-book.c @@ -130,6 +130,30 @@ pas_book_queue_get_book_view (PASBook *book, const Evolution_BookViewListener li } static void +pas_book_queue_get_changes (PASBook *book, const Evolution_BookViewListener listener, const char *search) +{ + PASRequest *req; + CORBA_Environment ev; + + req = g_new0 (PASRequest, 1); + req->op = GetChanges; + req->search = g_strdup(search); + + CORBA_exception_init (&ev); + + req->listener = CORBA_Object_duplicate(listener, &ev); + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("pas_book_queue_get_changes: Exception " + "duplicating BookViewListener!\n"); + } + + CORBA_exception_free (&ev); + + pas_book_queue_request (book, req); +} + +static void pas_book_queue_check_connection (PASBook *book) { PASRequest *req; @@ -233,6 +257,17 @@ impl_Evolution_Book_get_book_view (PortableServer_Servant servant, } static void +impl_Evolution_Book_get_changes (PortableServer_Servant servant, + const Evolution_BookViewListener listener, + const CORBA_char *search, + CORBA_Environment *ev) +{ + PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant)); + + pas_book_queue_get_changes (book, listener, search); +} + +static void impl_Evolution_Book_check_connection (PortableServer_Servant servant, CORBA_Environment *ev) { @@ -442,7 +477,7 @@ pas_book_respond_get_cursor (PASBook *book, } /** - * pas_book_respond_get_cursor: + * pas_book_respond_get_book_view: */ void pas_book_respond_get_book_view (PASBook *book, @@ -468,6 +503,32 @@ pas_book_respond_get_book_view (PASBook *book, } /** + * pas_book_respond_get_changes: + */ +void +pas_book_respond_get_changes (PASBook *book, + Evolution_BookListener_CallStatus status, + PASBookView *book_view) +{ + CORBA_Environment ev; + CORBA_Object object; + + CORBA_exception_init (&ev); + + object = bonobo_object_corba_objref(BONOBO_OBJECT(book_view)); + + Evolution_BookListener_respond_get_changes ( + book->priv->listener, status, object, &ev); + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("pas_book_respond_get_changes: Exception " + "responding to BookListener!\n"); + } + + CORBA_exception_free (&ev); +} + +/** * pas_book_report_connection: */ void @@ -622,6 +683,7 @@ pas_book_get_epv (void) epv->get_static_capabilities = impl_Evolution_Book_get_static_capabilities; epv->get_cursor = impl_Evolution_Book_get_cursor; epv->get_book_view = impl_Evolution_Book_get_book_view; + epv->get_changes = impl_Evolution_Book_get_changes; return epv; |