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 f21fa5a8dcc41565158a09d1493d434c31d05a46..46b56318925ac2ab804aba8b73f5711373034db2 100644 |
--- a/device/bluetooth/bluetooth_low_energy_win_fake.h |
+++ b/device/bluetooth/bluetooth_low_energy_win_fake.h |
@@ -53,6 +53,8 @@ struct GattCharacteristic { |
scoped_ptr<BTH_LE_GATT_CHARACTERISTIC> characteristic_info; |
scoped_ptr<BTH_LE_GATT_CHARACTERISTIC_VALUE> value; |
GattDescriptorsMap included_descriptors; |
+ std::vector<HRESULT> read_errors; |
+ std::vector<HRESULT> write_errors; |
}; |
struct GattDescriptor { |
@@ -65,6 +67,15 @@ struct GattDescriptor { |
// Fake implementation of BluetoothLowEnergyWrapper. Used for BluetoothTestWin. |
class BluetoothLowEnergyWrapperFake : public BluetoothLowEnergyWrapper { |
public: |
+ class Observer { |
+ public: |
+ Observer() {} |
+ ~Observer() {} |
+ |
+ virtual void onWriteGattCharacteristicValue( |
+ const PBTH_LE_GATT_CHARACTERISTIC_VALUE value) = 0; |
+ }; |
+ |
BluetoothLowEnergyWrapperFake(); |
~BluetoothLowEnergyWrapperFake() override; |
@@ -89,10 +100,19 @@ class BluetoothLowEnergyWrapperFake : public BluetoothLowEnergyWrapper { |
const PBTH_LE_GATT_CHARACTERISTIC characteristic, |
scoped_ptr<BTH_LE_GATT_DESCRIPTOR>* out_included_descriptors, |
USHORT* out_counts) override; |
+ HRESULT ReadCharacteristicValue( |
+ base::FilePath& service_path, |
+ const PBTH_LE_GATT_CHARACTERISTIC characteristic, |
+ scoped_ptr<BTH_LE_GATT_CHARACTERISTIC_VALUE>* out_value) override; |
+ HRESULT WriteCharacteristicValue( |
+ base::FilePath& service_path, |
+ const PBTH_LE_GATT_CHARACTERISTIC characteristic, |
+ PBTH_LE_GATT_CHARACTERISTIC_VALUE new_value) override; |
BLEDevice* SimulateBLEDevice(std::string device_name, |
BLUETOOTH_ADDRESS device_address); |
BLEDevice* GetSimulatedBLEDevice(std::string device_address); |
+ void RemoveSimulatedBLEDevice(std::string device_address); |
// Note: |parent_service| may be nullptr to indicate a primary service. |
GattService* SimulateGattService(BLEDevice* device, |
@@ -119,9 +139,16 @@ class BluetoothLowEnergyWrapperFake : public BluetoothLowEnergyWrapper { |
GattCharacteristic* GetSimulatedGattCharacteristic( |
GattService* parent_service, |
std::string attribute_handle); |
+ void SimulateGattCharacteristicValue(GattCharacteristic* characteristic, |
+ const std::vector<uint8_t>& value); |
+ void SimulateGattCharacteristicReadError(GattCharacteristic* characteristic, |
+ HRESULT error); |
+ void SimulateGattCharacteristicWriteError(GattCharacteristic* characteristic, |
+ HRESULT error); |
void SimulateGattDescriptor(std::string device_address, |
GattCharacteristic* characteristic, |
const BTH_LE_UUID& uuid); |
+ void AddObserver(Observer* observer); |
private: |
// Get simulated characteristic by |service_path| and |characteristic| info. |
@@ -158,6 +185,7 @@ class BluetoothLowEnergyWrapperFake : public BluetoothLowEnergyWrapper { |
// Table to store allocated attribute handle for a device. |
BLEAttributeHandleTable attribute_handle_table_; |
BLEDevicesMap simulated_devices_; |
+ Observer* observer_; |
}; |
} // namespace win |