From 459f333d805f6b70f92a73ece46ad73e679684fe Mon Sep 17 00:00:00 2001 From: Vincent Scheib Date: Wed, 6 Dec 2017 01:02:24 +0000 Subject: [PATCH] bluetooth: doc: Describe future API direction changes. TBR: scheib@chromium.org Change-Id: I467adbf5ff9304eea15f8c597565ce84384fbc18 Reviewed-on: https://chromium-review.googlesource.com/810058 Reviewed-by: Vincent Scheib Commit-Queue: Vincent Scheib Cr-Commit-Position: refs/heads/master@{#521932} --- device/bluetooth/README.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/device/bluetooth/README.md b/device/bluetooth/README.md index a2f3b1acec03f..02d51ce706a7f 100644 --- a/device/bluetooth/README.md +++ b/device/bluetooth/README.md @@ -35,13 +35,28 @@ features and the Chrome Apps APIs: * [chrome.bluetoothLowEnergy](https://developer.chrome.com/apps/bluetoothLowEnergy) * [chrome.bluetoothSocket](https://developer.chrome.com/apps/bluetoothSocket) -Active development in 2015 & 2016 is focused on enabling GATT features for: +Active development in 2015 & 2016 focused on enabling GATT features for: * [Web Bluetooth](https://crbug.com/419413) * Peripheral mode for Chrome OS. -Known future work is tracked in the -[Refactoring meta issue](https://crbug.com/580406). +## Future Work + +The API and implementation have many known issues. + +The initial API was heavily influenced by BlueZ. Low Energy GATT APIs are not +consistent across platforms. Some of the high level abstractions built into +`device/bluetooth` are difficult for clients. Several TODOs exist in the C++ +header files, e.g. `BluetoothAdapter::Observer`. + +Primarily, the API should be split into fundamental Bluetooth concepts and +seperate, optional, high level utility classes. + +E.g. receiving advertising packets should be routed directly to clients allowing +contents of the individual packet to be inspected. Caching of known devices +should not exist in the fundamental API, but be offered as utility classes. + +See also the [Refactoring meta issue](https://crbug.com/580406). ## Android