aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/pas/pas-backend.c
diff options
context:
space:
mode:
authorChris Toshok <toshok@ximian.com>2003-10-23 04:50:36 +0800
committerChris Toshok <toshok@src.gnome.org>2003-10-23 04:50:36 +0800
commitcbfab681c1576d4de27d48fbd6b4b7780670494a (patch)
tree70e99033907a1f5dada728e785835a07ca6ab98c /addressbook/backend/pas/pas-backend.c
parentf7cbb839adf3fd47aa07ca2080063acd6fff6978 (diff)
downloadgsoc2013-evolution-cbfab681c1576d4de27d48fbd6b4b7780670494a.tar
gsoc2013-evolution-cbfab681c1576d4de27d48fbd6b4b7780670494a.tar.gz
gsoc2013-evolution-cbfab681c1576d4de27d48fbd6b4b7780670494a.tar.bz2
gsoc2013-evolution-cbfab681c1576d4de27d48fbd6b4b7780670494a.tar.lz
gsoc2013-evolution-cbfab681c1576d4de27d48fbd6b4b7780670494a.tar.xz
gsoc2013-evolution-cbfab681c1576d4de27d48fbd6b4b7780670494a.tar.zst
gsoc2013-evolution-cbfab681c1576d4de27d48fbd6b4b7780670494a.zip
use the synchronous api for this. simplifies it a bunch.
2003-10-21 Chris Toshok <toshok@ximian.com> * tools/evolution-addressbook-abuse.c: use the synchronous api for this. simplifies it a bunch. 2003-10-21 Chris Toshok <toshok@ximian.com> * backend/pas/pas-book.c (impl_GNOME_Evolution_Addressbook_Book_remove): we can ill afford bad debug spew. (view_listener_died_cb): implement. (impl_GNOME_Evolution_Addressbook_Book_getBookView): hook up an ORBit_small connection listener on the view's listener. (pas_book_respond_create): use e_contact_get_const instead of e_contact_get here. fixes a leak. * backend/pas/pas-book-view.c (impl_GNOME_Evolution_Addressbook_BookView_stop): implement, call pas_backend_stop_book_view. (pas_book_view_get_listener): return the book view's listener. (pas_book_view_class_init): fill in epv->stop. (pas_book_view_init): use a #define for THRESHOLD_MAX instead of the constant. * backend/pas/pas-book-view.h: add prototype for pas_book_view_get_listener. * backend/pas/pas-backend.c (pas_backend_stop_book_view): implement. (pas_backend_remove_book_view): implement. * backend/pas/pas-backend.h: add prototype for stop_book_view and remove_book_view. * backend/pas/pas-backend-vcf.c (load_file): pass in the fd and use fdopen here. (foreach_build_list): don't creat EContacts here, because we'll just be converting them back to vcards anyway. (save_file): use char*'s instead of EContacts, and split entries with 2 blank lines. Also, hold the lock over the entire function. (do_create): hold the lock around uid generation and touching the hash table. (pas_backend_vcf_process_remove_contacts): same. (pas_backend_vcf_process_modify_contact): same. (pas_backend_vcf_stop_book_view): new function, but leave unimplemented for now. (pas_backend_vcf_load_uri): the uri contains the directory name, not the filename. (pas_backend_vcf_dispose): grab the lock here just for sanity's sake. Also reorder things a bit, and free the hashtable and mutex. (pas_backend_vcf_init): init the mutex. * backend/pas/pas-backend-summary.c (pas_backend_summary_add_contact): don't unref the contact here. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_process_stop_book_view): new function, but leave unimplemented for now. * backend/pas/pas-backend-file.c (build_summary): use an EContact for this call. (do_summary_query): nuke, the contents of this has been moved to start_book_view. (pas_backend_file_search_timeout): same. (pas_backend_file_search): same. (pas_backend_file_start_book_view): glom everything into here involving searching. This function could (and should) be renamed and reused from both this function and _get_contact_list. (pas_backend_file_stop_book_view): new function. (pas_backend_file_class_init): fill in backend->stop_book_view. * backend/pas/Makefile.am (LDAP_BACKEND): libpasldap.a -> libpasldap.la (noinst_LTLIBRARIES): *.a -> *.la. (libpas_la_SOURCES): same. (libpasfile_la_SOURCES): same. (libpasvcf_la_SOURCES): same. (libpasldap_la_SOURCES): same. * backend/idl/addressbook.idl: add BookView::stop. * backend/ebook/e-vcard.c (read_attribute_value): fix GString related leaks. (read_attribute_params): same. (parse): don't leak the EVCardAttributes corresponding to BEGIN/END:vCard. (free_gstring): new function (e_vcard_attribute_remove_values): free the decoded_values list, using free_gstring. * backend/ebook/e-book.c (e_book_response_get_book_view): ref the listener here. * backend/ebook/e-book-view.h: add prototype for e_book_view_stop. * backend/ebook/e-book-view.c (e_book_view_stop): new function. * backend/ebook/e-book-async.c (_get_book_view_response_dtor): unref the book view. svn path=/trunk/; revision=23000
Diffstat (limited to 'addressbook/backend/pas/pas-backend.c')
-rw-r--r--addressbook/backend/pas/pas-backend.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/addressbook/backend/pas/pas-backend.c b/addressbook/backend/pas/pas-backend.c
index 076565de07..5b559940d1 100644
--- a/addressbook/backend/pas/pas-backend.c
+++ b/addressbook/backend/pas/pas-backend.c
@@ -201,6 +201,18 @@ pas_backend_start_book_view (PASBackend *backend,
}
void
+pas_backend_stop_book_view (PASBackend *backend,
+ PASBookView *book_view)
+{
+ g_return_if_fail (backend && PAS_IS_BACKEND (backend));
+ g_return_if_fail (book_view && PAS_IS_BOOK_VIEW (book_view));
+
+ g_assert (PAS_BACKEND_GET_CLASS (backend)->stop_book_view);
+
+ (* PAS_BACKEND_GET_CLASS (backend)->stop_book_view) (backend, book_view);
+}
+
+void
pas_backend_get_changes (PASBackend *backend,
PASBook *book,
const char *change_id)
@@ -308,6 +320,17 @@ pas_backend_add_book_view (PASBackend *backend,
g_mutex_unlock (backend->priv->views_mutex);
}
+void
+pas_backend_remove_book_view (PASBackend *backend,
+ PASBookView *view)
+{
+ g_mutex_lock (backend->priv->views_mutex);
+
+ e_list_remove (backend->priv->views, view);
+
+ g_mutex_unlock (backend->priv->views_mutex);
+}
+
/**
* pas_backend_add_client:
* @backend: An addressbook backend.