Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(894)

Unified Diff: chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.h

Issue 262053003: chrome.bluetoothLowEnergy: Implement getCharacteristic. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.h
diff --git a/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.h b/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.h
index 6ad37262378aa2d3e6279d22f66095fd914fc580..6579b4b387eacc0152e1b42e31aa61e17d1c22b5 100644
--- a/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.h
+++ b/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.h
@@ -70,7 +70,7 @@ class BluetoothLowEnergyEventRouter
// Populates |out_service| based on GATT service with instance ID
// |instance_id|. Returns true on success. Returns false, if no GATT service
- // with the given ID is known. |service| must not be NULL.
+ // with the given ID is known. |out_service| must not be NULL.
bool GetService(const std::string& instance_id,
api::bluetooth_low_energy::Service* out_service) const;
@@ -95,6 +95,14 @@ class BluetoothLowEnergyEventRouter
bool GetCharacteristics(const std::string& instance_id,
CharacteristicList* out_characteristics) const;
+ // Populates |out_characteristic| based on GATT characteristic with instance
+ // ID |instance_id|. Returns true, on success. Returns false, if no GATT
+ // characteristic with the given ID is known. |out_characteristic| must not be
+ // NULL.
+ bool GetCharacteristic(
+ const std::string& instance_id,
+ api::bluetooth_low_energy::Characteristic* out_characteristic) const;
+
// Initializes the adapter for testing. Used by unit tests only.
void SetAdapterForTesting(device::BluetoothAdapter* adapter);
@@ -139,33 +147,26 @@ class BluetoothLowEnergyEventRouter
device::BluetoothGattService* FindServiceById(
const std::string& instance_id) const;
- // Meta-data that identifies GATT services, characteristics, and descriptors,
- // for obtaining instances from the BluetoothAdapter.
- struct GattObjectData {
- GattObjectData();
- ~GattObjectData();
-
- std::string device_address;
- std::string service_id;
- std::string characteristic_id;
- std::string descriptor_id;
- };
-
- // Mapping from instance ids to GattObjectData. The keys are used to identify
- // individual instances of GATT objects and is used by bluetoothLowEnergy API
- // functions to obtain the correct GATT object to operate on. Instance IDs are
- // string identifiers that are returned by the device/bluetooth API, by
- // calling GetIdentifier() on the corresponding device::BluetoothGatt*
- // instance.
+ // Returns a BluetoothGattCharacteristic by its instance ID |instance_id|.
+ // Returns NULL, if the characteristic cannot be found.
+ device::BluetoothGattCharacteristic* FindCharacteristicById(
+ const std::string& instance_id) const;
+
+ // Mapping from instance ids to identifiers of owning instances. The keys are
+ // used to identify individual instances of GATT objects and are used by
+ // bluetoothLowEnergy API functions to obtain the correct GATT object to
+ // operate on. Instance IDs are string identifiers that are returned by the
+ // device/bluetooth API, by calling GetIdentifier() on the corresponding
+ // device::BluetoothGatt* instance.
//
// This mapping is necessary, as GATT object instances can only be obtained
// from the object that owns it, where raw pointers should not be cached. E.g.
// to obtain a device::BluetoothGattCharacteristic, it is necessary to obtain
// a pointer to the associated device::BluetoothDevice, and then to the
// device::BluetoothGattService that owns the characteristic.
- typedef std::map<std::string, GattObjectData> InstanceIdToObjectDataMap;
- InstanceIdToObjectDataMap service_ids_to_objects_;
- InstanceIdToObjectDataMap chrc_ids_to_objects_;
+ typedef std::map<std::string, std::string> InstanceIdMap;
+ InstanceIdMap service_id_to_device_address_;
+ InstanceIdMap chrc_id_to_service_id_;
// Sets of BluetoothDevice and BluetoothGattService objects that are being
// observed, used to remove the BluetoothLowEnergyEventRouter as an observer

Powered by Google App Engine
This is Rietveld 408576698