summaryrefslogtreecommitdiffstats
path: root/include/hardware/bt_gatt_server.h
diff options
context:
space:
mode:
authorAndre Eisenbach <andre@broadcom.com>2014-03-28 14:53:33 -0700
committerAndre Eisenbach <eisenbach@google.com>2014-06-25 14:00:30 -0700
commit9ef3c72ef3e90a93ed641e757310c2a389d32834 (patch)
treebdcf7fa2117583eabe773b39549dbb961fd46d26 /include/hardware/bt_gatt_server.h
parentfb5fd093db65913f25d8fcdb962a11030c06874f (diff)
downloadhardware_libhardware-9ef3c72ef3e90a93ed641e757310c2a389d32834.zip
hardware_libhardware-9ef3c72ef3e90a93ed641e757310c2a389d32834.tar.gz
hardware_libhardware-9ef3c72ef3e90a93ed641e757310c2a389d32834.tar.bz2
LE: Add notification sent and congestion callbacks (1/4)
This change introduces two new callbacks for applications to better handle LE notification flow control and transport congestion. The notification callback is invoked when the remote platform confirms an indication or when a local notification has been passed to the controller. No new notifications should be sent until a callback is received. Congestion callbacks are triggered when a GATT operation cannot be sent to the local Bluetooth controller. Repeatedly calling writeCharacteristic() for example will eventually trigger a congestion callback. Applications cannot send additional data until a further callback is received, indicating that the congestion has cleared up. Change-Id: I613cbf968770921f853a407888bb8308849039f3
Diffstat (limited to 'include/hardware/bt_gatt_server.h')
-rw-r--r--include/hardware/bt_gatt_server.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/hardware/bt_gatt_server.h b/include/hardware/bt_gatt_server.h
index 32f8ef6..2b1de27 100644
--- a/include/hardware/bt_gatt_server.h
+++ b/include/hardware/bt_gatt_server.h
@@ -104,6 +104,19 @@ typedef void (*request_exec_write_callback)(int conn_id, int trans_id,
*/
typedef void (*response_confirmation_callback)(int status, int handle);
+/**
+ * Callback confirming that a notification or indication has been sent
+ * to a remote device.
+ */
+typedef void (*indication_sent_callback)(int conn_id, int status);
+
+/**
+ * Callback notifying an application that a remote device connection is currently congested
+ * and cannot receive any more data. An application should avoid sending more data until
+ * a further callback is received indicating the congestion status has been cleared.
+ */
+typedef void (*congestion_callback)(int conn_id, bool congested);
+
typedef struct {
register_server_callback register_server_cb;
connection_callback connection_cb;
@@ -118,6 +131,8 @@ typedef struct {
request_write_callback request_write_cb;
request_exec_write_callback request_exec_write_cb;
response_confirmation_callback response_confirmation_cb;
+ indication_sent_callback indication_sent_cb;
+ congestion_callback congestion_cb;
} btgatt_server_callbacks_t;
/** Represents the standard BT-GATT server interface. */