From: Claudio Takahasi Date: Mon, 24 Mar 2014 13:30:04 +0000 (-0300) Subject: gatt: Add result callback for Write Request X-Git-Tag: android-x86-4.4-r3~4545 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=f93782701b4abe9eca8d7a15807019cc8325add1;p=android-x86%2Fexternal-bluetooth-bluez.git gatt: Add result callback for Write Request This patch adds a callback to allow the service implementation to inform the core (ATT layer) the result of the write operation. Used to handle ATT Write Request procedure, which requires ATT response. --- diff --git a/src/gatt-dbus.c b/src/gatt-dbus.c index cdb46c44a..9ab7b8b62 100644 --- a/src/gatt-dbus.c +++ b/src/gatt-dbus.c @@ -186,7 +186,9 @@ static void proxy_write_reply(const DBusError *derr, void *user_data) } static void proxy_write_cb(struct btd_attribute *attr, - const uint8_t *value, size_t len) + const uint8_t *value, size_t len, + btd_attr_write_result_t result, + void *user_data) { GDBusProxy *proxy; diff --git a/src/gatt.h b/src/gatt.h index d5dc7e6c6..8137e814b 100644 --- a/src/gatt.h +++ b/src/gatt.h @@ -42,15 +42,29 @@ typedef void (*btd_attr_read_result_t) (int err, uint8_t *value, size_t len, typedef void (*btd_attr_read_t) (struct btd_attribute *attr, btd_attr_read_result_t result, void *user_data); + +/* + * Write operation result callback. Called from the service implementation + * informing the core (ATT layer) the result of the write operation. It is used + * to manage Write Request operations. + * @err: error in -errno format. + * @user_data: user_data passed in btd_attr_write_t callback. + */ +typedef void (*btd_attr_write_result_t) (int err, void *user_data); /* * Service implementation callback passed to core (ATT layer). It manages write * operations received from remote devices. * @attr: reference of the attribute to be changed. * @value: new attribute value. * @len: length of value. + * @result: callback called from the service implementation informing the + * result of the write operation. + * @user_data: user_data passed in btd_attr_write_result_t callback. */ typedef void (*btd_attr_write_t) (struct btd_attribute *attr, - const uint8_t *value, size_t len); + const uint8_t *value, size_t len, + btd_attr_write_result_t result, + void *user_data); /* btd_gatt_add_service - Add a service declaration to local attribute database. * @uuid: Service UUID.