aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/pas/pas-book.c
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/backend/pas/pas-book.c')
-rw-r--r--addressbook/backend/pas/pas-book.c64
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;