diff options
author | Wu zheng <wu.zheng@intel.com> | 2013-10-23 11:14:09 +0800 |
---|---|---|
committer | Sebastian Chlad <sebastian.chlad@tieto.com> | 2014-05-27 11:28:43 +0200 |
commit | 9f8e257957becee081c3573172b982b3e68e1d8f (patch) | |
tree | 8a5b7d5969e57c9ac2bf1a08eb84a8781a6579cd /obexd | |
parent | f66dde8ca4eba408464431f5f6bd9b69145e89fc (diff) | |
download | bluez-9f8e257957becee081c3573172b982b3e68e1d8f.tar.gz bluez-9f8e257957becee081c3573172b982b3e68e1d8f.tar.bz2 bluez-9f8e257957becee081c3573172b982b3e68e1d8f.zip |
Using TIZEN driver to get/put phonebook in pbap
Change-Id: I68fa59d0f497a7f0897b34ab390a9a9ad9aea605
Diffstat (limited to 'obexd')
-rw-r--r-- | obexd/plugins/pbap.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/obexd/plugins/pbap.c b/obexd/plugins/pbap.c index acac3aa7..f52d7d58 100644 --- a/obexd/plugins/pbap.c +++ b/obexd/plugins/pbap.c @@ -85,6 +85,9 @@ struct pbap_session { uint32_t find_handle; struct cache cache; struct pbap_object *obj; +#ifdef __TIZEN_PATCH__ + void *backend_data; +#endif }; struct pbap_object { @@ -443,6 +446,20 @@ static void cache_entry_done(void *user_data) obex_object_set_io_flags(pbap->obj, G_IO_ERR, ret); } +#ifdef __TIZEN_PATCH__ +static void cache_clear_notify(void *user_data) +{ + struct pbap_session *pbap = user_data; + + if (pbap == NULL) + return; + + pbap->cache.valid = FALSE; + pbap->cache.index = 0; + cache_clear(&pbap->cache); +} +#endif + static struct apparam_field *parse_aparam(const uint8_t *buffer, uint32_t hlen) { GObexApparam *apparam; @@ -485,10 +502,23 @@ static void *pbap_connect(struct obex_session *os, int *err) pbap->folder = g_strdup("/"); pbap->find_handle = PHONEBOOK_INVALID_HANDLE; +#ifdef __TIZEN_PATCH__ + *err = phonebook_connect(&pbap->backend_data); + if (*err < 0) + goto failed; +#endif + if (err) *err = 0; return pbap; + +#ifdef __TIZEN_PATCH__ +failed: + g_free(pbap); + + return NULL; +#endif } static int pbap_get(struct obex_session *os, void *user_data) @@ -599,6 +629,10 @@ static void pbap_disconnect(struct obex_session *os, void *user_data) manager_unregister_session(os); +#ifdef __TIZEN_PATCH__ + phonebook_disconnect(pbap->backend_data); +#endif + if (pbap->obj) pbap->obj->session = NULL; @@ -744,6 +778,10 @@ static void *vobject_list_open(const char *name, int oflag, mode_t mode, cache_ready_notify, pbap, &ret); if (ret == 0) obj = vobject_create(pbap, request); +#ifdef __TIZEN_PATCH__ + phonebook_set_cache_notification(pbap->backend_data, + cache_clear_notify, pbap); +#endif } if (ret < 0) goto fail; @@ -788,6 +826,10 @@ static void *vobject_vcard_open(const char *name, int oflag, mode_t mode, pbap->find_handle = handle; request = phonebook_create_cache(pbap->folder, cache_entry_notify, cache_entry_done, pbap, &ret); +#ifdef __TIZEN_PATCH__ + phonebook_set_cache_notification(pbap->backend_data, + cache_clear_notify, pbap); +#endif goto done; } |