Chromium Code Reviews| Index: device/bluetooth/bluetooth_low_energy_win_fake.h |
| diff --git a/device/bluetooth/bluetooth_low_energy_win_fake.h b/device/bluetooth/bluetooth_low_energy_win_fake.h |
| index a22d5cbb86327ad7280abcef6f7197d6c9b57cbe..4a7da28e0a0dded46e3a505bf6e01fd76b333581 100644 |
| --- a/device/bluetooth/bluetooth_low_energy_win_fake.h |
| +++ b/device/bluetooth/bluetooth_low_energy_win_fake.h |
| @@ -7,9 +7,55 @@ |
| #include "device/bluetooth/bluetooth_low_energy_win.h" |
| +#include <set> |
| + |
| +#include "base/containers/scoped_ptr_hash_map.h" |
| + |
| namespace device { |
| namespace win { |
| +struct BLEDevice; |
| +struct BLEGattService; |
| +struct BLEGattCharacteristic; |
| +struct BLEGattDescriptor; |
| + |
| +// The key of BLEDevicesMap is the string of the BLE device address. |
| +typedef base::ScopedPtrHashMap<std::string, scoped_ptr<BLEDevice>> |
|
scheib
2016/02/08 20:23:00
ScopedPtrHashMap is Deprecated. Use std::unordered
gogerald1
2016/02/08 22:20:38
Done.
|
| + BLEDevicesMap; |
| +// The key of BLEGattServicesMap, BLEGattCharacteristicsMap and |
| +// BLEGattDescriptorsMap is the string of the attribute handle. |
| +typedef base::ScopedPtrHashMap<std::string, scoped_ptr<BLEGattService>> |
| + BLEGattServicesMap; |
| +typedef base::ScopedPtrHashMap<std::string, scoped_ptr<BLEGattCharacteristic>> |
| + BLEGattCharacteristicsMap; |
| +typedef base::ScopedPtrHashMap<std::string, scoped_ptr<BLEGattDescriptor>> |
| + BLEGattDescriptorsMap; |
| +// The key of BLEAttributeHandleTable is the string of the BLE device address. |
| +typedef base::ScopedPtrHashMap<std::string, scoped_ptr<std::set<USHORT>>> |
| + BLEAttributeHandleTable; |
| + |
| +struct BLEDevice { |
| + scoped_ptr<BluetoothLowEnergyDeviceInfo> device_info; |
| + BLEGattServicesMap primary_services; |
| +}; |
| + |
| +struct BLEGattService { |
| + scoped_ptr<BTH_LE_GATT_SERVICE> service_info; |
| + BLEGattServicesMap included_services; |
| + BLEGattCharacteristicsMap included_characteristics; |
| +}; |
| + |
| +struct BLEGattCharacteristic { |
| + scoped_ptr<BTH_LE_GATT_CHARACTERISTIC> characteristic_info; |
| + scoped_ptr<BTH_LE_GATT_CHARACTERISTIC_VALUE> value; |
| + BLEGattDescriptorsMap included_descriptors; |
| +}; |
| + |
| +struct BLEGattDescriptor { |
| + scoped_ptr<BTH_LE_GATT_DESCRIPTOR> descriptor_info; |
| + scoped_ptr<BTH_LE_GATT_DESCRIPTOR_VALUE> value; |
| +}; |
| + |
| // Fake implementation of BluetoothLowEnergyWrapper. Used for BluetoothTestWin. |
| class BluetoothLowEnergyWrapperFake : public BluetoothLowEnergyWrapper { |
| public: |
| @@ -26,6 +72,43 @@ class BluetoothLowEnergyWrapperFake : public BluetoothLowEnergyWrapper { |
| const base::FilePath& device_path, |
| ScopedVector<BluetoothLowEnergyServiceInfo>* services, |
| std::string* error) override; |
| + |
| + BLEDevice* SimulateBLEDevice(std::string device_name, |
| + BLUETOOTH_ADDRESS device_address); |
| + BLEGattService* SimulateBLEGattService(BLEDevice* device, std::string uuid); |
| + |
| + private: |
| + // Generate an unique attribute handle on |device_address|. |
| + USHORT GenerateAUniqueAttributeHandle(std::string device_address); |
| + |
| + // Generate device path for the BLE device with |device_address|. |
| + base::string16 GenerateBLEDevicePath(std::string device_address); |
| + |
| + // Generate Gatt service device path of the service with |
| + // |service_attribute_handle|. |resident_device_path| is the BLE device this |
| + // Gatt service belongs to. |
| + base::string16 GenerateBLEGattServiceDevicePath( |
| + base::string16 resident_device_path, |
| + USHORT service_attribute_handle); |
| + |
| + // Extract device address from the device |path| generated above. |
|
scheib
2016/02/08 20:23:00
generated by GenerateBLEGattServiceDevicePath.
gogerald1
2016/02/08 22:20:38
Done.
|
| + base::string16 ExtractDeviceAddressFromDevicePath(base::string16 path); |
| + |
| + // Extract service attribute handle from the |path| generated by |
| + // GenerateBLEGattServiceDevicePath. |
| + base::string16 ExtractServiceAttributeHandleFromDevicePath( |
| + base::string16 path); |
| + |
| + // The canonical BLE device address string format is the |
| + // BluetoothDevice::CanonicalizeAddress. |
| + std::string BluetoothAddressToCanonicalString(const BLUETOOTH_ADDRESS& btha); |
| + |
| + // The canonical UUID string format is device::BluetoothUUID.value(). |
| + BTH_LE_UUID CanonicalStringToBTH_LE_UUID(std::string uuid); |
| + |
| + // Table to store allocated attribute handle for a device. |
| + BLEAttributeHandleTable attribute_handle_table_; |
| + BLEDevicesMap simulated_devices_; |
| }; |
| } // namespace win |