bluetooth_classic_win_fake.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Copyright 2016 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef DEVICE_BLUETOOTH_BLUETOOTH_CLASSIC_WIN_FAKE_H_
  5. #define DEVICE_BLUETOOTH_BLUETOOTH_CLASSIC_WIN_FAKE_H_
  6. #include <memory>
  7. #include <string>
  8. #include "device/bluetooth/bluetooth_classic_win.h"
  9. namespace device {
  10. namespace win {
  11. struct BluetoothRadio {
  12. BLUETOOTH_RADIO_INFO radio_info;
  13. BOOL is_connectable;
  14. };
  15. // Fake implementation of BluetoothClassicWrapper. Used for BluetoothTestWin.
  16. class BluetoothClassicWrapperFake : public BluetoothClassicWrapper {
  17. public:
  18. BluetoothClassicWrapperFake();
  19. ~BluetoothClassicWrapperFake() override;
  20. HBLUETOOTH_RADIO_FIND FindFirstRadio(
  21. const BLUETOOTH_FIND_RADIO_PARAMS* params) override;
  22. DWORD GetRadioInfo(PBLUETOOTH_RADIO_INFO out_radio_info) override;
  23. BOOL FindRadioClose(HBLUETOOTH_RADIO_FIND handle) override;
  24. BOOL IsConnectable() override;
  25. HBLUETOOTH_DEVICE_FIND FindFirstDevice(
  26. const BLUETOOTH_DEVICE_SEARCH_PARAMS* params,
  27. BLUETOOTH_DEVICE_INFO* out_device_info) override;
  28. BOOL FindNextDevice(HBLUETOOTH_DEVICE_FIND handle,
  29. BLUETOOTH_DEVICE_INFO* out_device_info) override;
  30. BOOL FindDeviceClose(HBLUETOOTH_DEVICE_FIND handle) override;
  31. BOOL EnableDiscovery(BOOL is_enable) override;
  32. BOOL EnableIncomingConnections(BOOL is_enable) override;
  33. DWORD LastError() override;
  34. bool HasHandle() override;
  35. BluetoothRadio* SimulateARadio(std::u16string name,
  36. BLUETOOTH_ADDRESS address);
  37. private:
  38. std::unique_ptr<BluetoothRadio> simulated_radios_;
  39. DWORD last_error_;
  40. };
  41. } // namespace device
  42. } // namespace win
  43. #endif // DEVICE_BLUETOOTH_BLUETOOTH_CLASSIC_WIN_FAKE_H_