From ac80365c860bc263b183a76a5f035779b60f100f Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Wed, 8 Jan 2003 20:34:51 +0000 Subject: Move PASBook request handling into PASBackend itself since all existing backends do it exactly the same way. (Part of 32866). * backend/pas/pas-backend.h (PASBackendClass): add new methods for the various pas book requests. * backend/pas/pas-backend.c: Add a clients list to PASBackendPrivate. (pas_backend_create_card, etc): Add these to invoke the new methods. (process_client_requests, book_destroy_cb): Moved here and slightly rewritten from pas-backend-file. (last_client_gone): Now static. (add_client, remove_client): Default implementations, based on pas-backend-file, that add the client to/remove it from the backend's clients list and connect to its requests_queued signal. (pas_backend_init, pas_backend_dispose): Deal with the clients list. * backend/pas/pas-backend-file.c (struct _PASBackendFilePrivate): Remove GList *clients. (pas_backend_file_process_client_requests, pas_backend_file_book_destroy_db, pas_backend_file_add_client, pas_backend_file_remove_client): Gone. (pas_backend_file_class_init): Remove add_client/remove_client method initializations, add initializations for processing the various book requests. * backend/pas/pas-backend-ldap.c (struct _PASBackendLDAPPrivate): Remove GList *clients. (pas_backend_ldap_process_create_card, etc): Make these take the specific PAS*Request types rather than a generic PASRequest. (pas_backend_ldap_process_client_requests, pas_backend_ldap_book_destroy_db, pas_backend_ldap_add_client, pas_backend_ldap_remove_client): Gone. (pas_backend_ldap_class_init): Remove add_client/remove_client method initializations, add initializations for processing the various book requests. svn path=/trunk/; revision=19287 --- addressbook/backend/pas/pas-backend.h | 62 +++++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 3 deletions(-) (limited to 'addressbook/backend/pas/pas-backend.h') diff --git a/addressbook/backend/pas/pas-backend.h b/addressbook/backend/pas/pas-backend.h index d1d5705b0f..8c3cab2c60 100644 --- a/addressbook/backend/pas/pas-backend.h +++ b/addressbook/backend/pas/pas-backend.h @@ -53,6 +53,18 @@ typedef struct { void (*remove_client) (PASBackend *backend, PASBook *book); char *(*get_static_capabilities) (PASBackend *backend); + void (*create_card) (PASBackend *backend, PASBook *book, PASCreateCardRequest *req); + void (*remove_card) (PASBackend *backend, PASBook *book, PASRemoveCardRequest *req); + void (*modify_card) (PASBackend *backend, PASBook *book, PASModifyCardRequest *req); + void (*check_connection) (PASBackend *backend, PASBook *book, PASCheckConnectionRequest *req); + void (*get_vcard) (PASBackend *backend, PASBook *book, PASGetVCardRequest *req); + void (*get_cursor) (PASBackend *backend, PASBook *book, PASGetCursorRequest *req); + void (*get_book_view) (PASBackend *backend, PASBook *book, PASGetBookViewRequest *req); + void (*get_completion_view) (PASBackend *backend, PASBook *book, PASGetCompletionViewRequest *req); + void (*get_changes) (PASBackend *backend, PASBook *book, PASGetChangesRequest *req); + void (*authenticate_user) (PASBackend *backend, PASBook *book, PASAuthenticateUserRequest *req); + void (*get_supported_fields) (PASBackend *backend, PASBook *book, PASGetSupportedFieldsRequest *req); + /* Notification signals */ void (* last_client_gone) (PASBackend *backend); } PASBackendClass; @@ -72,9 +84,53 @@ void pas_backend_remove_client (PASBackend *backen PASBook *book); char *pas_backend_get_static_capabilities (PASBackend *backend); -void pas_backend_last_client_gone (PASBackend *backend); - -GType pas_backend_get_type (void); +gboolean pas_backend_is_loaded (PASBackend *backend); + +gboolean pas_backend_is_writable (PASBackend *backend); + +void pas_backend_create_card (PASBackend *backend, + PASBook *book, + PASCreateCardRequest *req); +void pas_backend_remove_card (PASBackend *backend, + PASBook *book, + PASRemoveCardRequest *req); +void pas_backend_modify_card (PASBackend *backend, + PASBook *book, + PASModifyCardRequest *req); +void pas_backend_check_connection (PASBackend *backend, + PASBook *book, + PASCheckConnectionRequest *req); +void pas_backend_get_vcard (PASBackend *backend, + PASBook *book, + PASGetVCardRequest *req); +void pas_backend_get_cursor (PASBackend *backend, + PASBook *book, + PASGetCursorRequest *req); +void pas_backend_get_book_view (PASBackend *backend, + PASBook *book, + PASGetBookViewRequest *req); +void pas_backend_get_completion_view (PASBackend *backend, + PASBook *book, + PASGetCompletionViewRequest *req); +void pas_backend_get_changes (PASBackend *backend, + PASBook *book, + PASGetChangesRequest *req); +void pas_backend_authenticate_user (PASBackend *backend, + PASBook *book, + PASAuthenticateUserRequest *req); +void pas_backend_get_supported_fields (PASBackend *backend, + PASBook *book, + PASGetSupportedFieldsRequest *req); + + +GType pas_backend_get_type (void); + + +/* protected functions for subclasses */ +void pas_backend_set_is_loaded (PASBackend *backend, + gboolean is_loaded); +void pas_backend_set_is_writable (PASBackend *backend, + gboolean is_writable); #endif /* ! __PAS_BACKEND_H__ */ -- cgit v1.2.3