| 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..e93774f9bcabc67bffaee9748751e338c8a12c12 100644
|
| --- a/device/bluetooth/bluetooth_low_energy_win_fake.h
|
| +++ b/device/bluetooth/bluetooth_low_energy_win_fake.h
|
| @@ -7,9 +7,53 @@
|
|
|
| #include "device/bluetooth/bluetooth_low_energy_win.h"
|
|
|
| +#include <set>
|
| +#include <unordered_map>
|
| +
|
| 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 std::unordered_map<std::string, scoped_ptr<BLEDevice>> BLEDevicesMap;
|
| +// The key of BLEGattServicesMap, BLEGattCharacteristicsMap and
|
| +// BLEGattDescriptorsMap is the string of the attribute handle.
|
| +typedef std::unordered_map<std::string, scoped_ptr<BLEGattService>>
|
| + BLEGattServicesMap;
|
| +typedef std::unordered_map<std::string, scoped_ptr<BLEGattCharacteristic>>
|
| + BLEGattCharacteristicsMap;
|
| +typedef std::unordered_map<std::string, scoped_ptr<BLEGattDescriptor>>
|
| + BLEGattDescriptorsMap;
|
| +// The key of BLEAttributeHandleTable is the string of the BLE device address.
|
| +typedef std::unordered_map<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 +70,44 @@ 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 by
|
| + // GenerateBLEDevicePath or GenerateBLEGattServiceDevicePath.
|
| + 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
|
|
|