fake_bluetooth_advertisement_monitor_manager_client.cc 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. // Copyright 2021 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. #include "device/bluetooth/dbus/fake_bluetooth_advertisement_monitor_manager_client.h"
  5. #include "base/callback_helpers.h"
  6. #include "base/logging.h"
  7. #include "base/notreached.h"
  8. #include "base/observer_list.h"
  9. #include "third_party/cros_system_api/dbus/service_constants.h"
  10. namespace bluez {
  11. FakeBluetoothAdvertisementMonitorManagerClient::
  12. FakeBluetoothAdvertisementMonitorManagerClient() = default;
  13. FakeBluetoothAdvertisementMonitorManagerClient::
  14. ~FakeBluetoothAdvertisementMonitorManagerClient() = default;
  15. void FakeBluetoothAdvertisementMonitorManagerClient::Init(
  16. dbus::Bus* bus,
  17. const std::string& bluetooth_service_name) {}
  18. void FakeBluetoothAdvertisementMonitorManagerClient::RegisterMonitor(
  19. const dbus::ObjectPath& application,
  20. const dbus::ObjectPath& adapter,
  21. base::OnceClosure callback,
  22. ErrorCallback error_callback) {
  23. std::move(callback).Run();
  24. }
  25. void FakeBluetoothAdvertisementMonitorManagerClient::UnregisterMonitor(
  26. const dbus::ObjectPath& application,
  27. const dbus::ObjectPath& adapter,
  28. base::OnceClosure callback,
  29. ErrorCallback error_callback) {
  30. NOTIMPLEMENTED();
  31. }
  32. BluetoothAdvertisementMonitorManagerClient::Properties*
  33. FakeBluetoothAdvertisementMonitorManagerClient::GetProperties(
  34. const dbus::ObjectPath& object_path) {
  35. return properties_.get();
  36. }
  37. void FakeBluetoothAdvertisementMonitorManagerClient::AddObserver(
  38. Observer* observer) {
  39. observers_.AddObserver(observer);
  40. }
  41. void FakeBluetoothAdvertisementMonitorManagerClient::RemoveObserver(
  42. Observer* observer) {
  43. observers_.RemoveObserver(observer);
  44. }
  45. void FakeBluetoothAdvertisementMonitorManagerClient::
  46. RegisterApplicationServiceProvider(
  47. FakeBluetoothAdvertisementMonitorApplicationServiceProvider* provider) {
  48. DCHECK(provider);
  49. application_provider_ = provider;
  50. InitializeProperties();
  51. }
  52. void FakeBluetoothAdvertisementMonitorManagerClient::InitializeProperties() {
  53. properties_ = std::make_unique<Properties>(
  54. nullptr,
  55. bluetooth_advertisement_monitor_manager::
  56. kBluetoothAdvertisementMonitorManagerInterface,
  57. base::BindRepeating(
  58. &FakeBluetoothAdvertisementMonitorManagerClient::OnPropertyChanged,
  59. weak_ptr_factory_.GetWeakPtr(),
  60. /*object_path=*/dbus::ObjectPath("")));
  61. }
  62. void FakeBluetoothAdvertisementMonitorManagerClient::RemoveProperties() {
  63. properties_.reset();
  64. }
  65. void FakeBluetoothAdvertisementMonitorManagerClient::OnPropertyChanged(
  66. const dbus::ObjectPath& object_path,
  67. const std::string& property_name) {
  68. DVLOG(2) << "Bluetooth Advertisement Monitor Client property changed: "
  69. << object_path.value() << ": " << property_name;
  70. if (property_name ==
  71. bluetooth_advertisement_monitor_manager::kSupportedFeatures) {
  72. for (auto& observer : observers_)
  73. observer.SupportedAdvertisementMonitorFeaturesChanged();
  74. }
  75. }
  76. } // namespace bluez