aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/pas/pas-book.c
diff options
context:
space:
mode:
authorChris Toshok <toshok@src.gnome.org>2000-05-17 01:50:28 +0800
committerChris Toshok <toshok@src.gnome.org>2000-05-17 01:50:28 +0800
commitd6db70c32dafe0acde40893893d37eb05564967c (patch)
treefa4f7e1bb16ff35f4a8ec231a6157aa30a763c09 /addressbook/backend/pas/pas-book.c
parentf8cb586400f551b3ade8594890a6ffdd991ae673 (diff)
downloadgsoc2013-evolution-d6db70c32dafe0acde40893893d37eb05564967c.tar
gsoc2013-evolution-d6db70c32dafe0acde40893893d37eb05564967c.tar.gz
gsoc2013-evolution-d6db70c32dafe0acde40893893d37eb05564967c.tar.bz2
gsoc2013-evolution-d6db70c32dafe0acde40893893d37eb05564967c.tar.lz
gsoc2013-evolution-d6db70c32dafe0acde40893893d37eb05564967c.tar.xz
gsoc2013-evolution-d6db70c32dafe0acde40893893d37eb05564967c.tar.zst
gsoc2013-evolution-d6db70c32dafe0acde40893893d37eb05564967c.zip
add typedefs for the can_write functions, and add parameters to
* backend/pas/pas-book.h: add typedefs for the can_write functions, and add parameters to pas_book_new. * backend/pas/pas-book.c (pas_book_construct): add can_write/can_write_card params. (pas_book_new): same. (impl_Evolution_Book_can_write): new function. (impl_Evolution_Book_can_write_card): same. (pas_book_get_epv): assign the can_write/can_write_card slots in the epv. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_can_write): new function. (pas_backend_ldap_can_write_card): same. (pas_backend_ldap_add_client): add can_write/can_write_card to pas_book_new call. * backend/pas/pas-backend-file.c (pas_backend_file_can_write_card): new function, calls can_write. (pas_backend_file_can_write): same. (can_write): return TRUE if we can write to the addressbook file. (pas_backend_file_add_client): add can_write/can_write_card to pas_book_new call. * backend/idl/addressbook.idl (Evolution): add can_write and can_write_card permission requests. svn path=/trunk/; revision=3093
Diffstat (limited to 'addressbook/backend/pas/pas-book.c')
-rw-r--r--addressbook/backend/pas/pas-book.c44
1 files changed, 41 insertions, 3 deletions
diff --git a/addressbook/backend/pas/pas-book.c b/addressbook/backend/pas/pas-book.c
index 2601d3d9d0..55caf1dce7 100644
--- a/addressbook/backend/pas/pas-book.c
+++ b/addressbook/backend/pas/pas-book.c
@@ -23,6 +23,8 @@ struct _PASBookPrivate {
PASBackend *backend;
Evolution_BookListener listener;
PASBookGetVCardFn get_vcard;
+ PASBookCanWriteFn can_write;
+ PASBookCanWriteCardFn can_write_card;
GList *request_queue;
gint idle_id;
@@ -154,6 +156,31 @@ impl_Evolution_Book_get_vcard (PortableServer_Servant servant,
return retval;
}
+static CORBA_boolean
+impl_Evolution_Book_can_write (PortableServer_Servant servant,
+ CORBA_Environment *ev)
+{
+ PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant));
+ CORBA_boolean retval;
+
+ retval = (book->priv->can_write) (book);
+
+ return retval;
+}
+
+static CORBA_boolean
+impl_Evolution_Book_can_write_card (PortableServer_Servant servant,
+ const Evolution_CardId id,
+ CORBA_Environment *ev)
+{
+ PASBook *book = PAS_BOOK (bonobo_object_from_servant (servant));
+ CORBA_boolean retval;
+
+ retval = (book->priv->can_write_card) (book, (const char *) id);
+
+ return retval;
+}
+
static void
impl_Evolution_Book_create_card (PortableServer_Servant servant,
const Evolution_VCard vcard,
@@ -452,7 +479,9 @@ static gboolean
pas_book_construct (PASBook *book,
PASBackend *backend,
Evolution_BookListener listener,
- PASBookGetVCardFn get_vcard)
+ PASBookGetVCardFn get_vcard,
+ PASBookCanWriteFn can_write,
+ PASBookCanWriteCardFn can_write_card)
{
POA_Evolution_Book *servant;
CORBA_Environment ev;
@@ -462,6 +491,8 @@ pas_book_construct (PASBook *book,
g_assert (PAS_IS_BOOK (book));
g_assert (listener != CORBA_OBJECT_NIL);
g_assert (get_vcard != NULL);
+ g_assert (can_write != NULL);
+ g_assert (can_write_card != NULL);
servant = (POA_Evolution_Book *) g_new0 (BonoboObjectServant, 1);
servant->vepv = &pas_book_vepv;
@@ -497,6 +528,8 @@ pas_book_construct (PASBook *book,
book->priv->listener = listener;
book->priv->get_vcard = get_vcard;
+ book->priv->can_write = can_write;
+ book->priv->can_write_card = can_write_card;
book->priv->backend = backend;
return TRUE;
@@ -508,7 +541,9 @@ pas_book_construct (PASBook *book,
PASBook *
pas_book_new (PASBackend *backend,
Evolution_BookListener listener,
- PASBookGetVCardFn get_vcard)
+ PASBookGetVCardFn get_vcard,
+ PASBookCanWriteFn can_write,
+ PASBookCanWriteCardFn can_write_card)
{
PASBook *book;
@@ -517,7 +552,8 @@ pas_book_new (PASBackend *backend,
book = gtk_type_new (pas_book_get_type ());
- if (! pas_book_construct (book, backend, listener, get_vcard)) {
+ if (! pas_book_construct (book, backend, listener,
+ get_vcard, can_write, can_write_card)) {
gtk_object_unref (GTK_OBJECT (book));
return NULL;
@@ -563,6 +599,8 @@ pas_book_get_epv (void)
epv = g_new0 (POA_Evolution_Book__epv, 1);
epv->get_vcard = impl_Evolution_Book_get_vcard;
+ epv->can_write = impl_Evolution_Book_can_write;
+ epv->can_write_card = impl_Evolution_Book_can_write_card;
epv->create_card = impl_Evolution_Book_create_card;
epv->remove_card = impl_Evolution_Book_remove_card;
epv->modify_card = impl_Evolution_Book_modify_card;