fake_bluetooth_advertisement_monitor_application_service_provider.cc 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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_application_service_provider.h"
  5. #include "base/containers/contains.h"
  6. #include "device/bluetooth/dbus/bluez_dbus_manager.h"
  7. #include "device/bluetooth/dbus/fake_bluetooth_advertisement_monitor_manager_client.h"
  8. #include "device/bluetooth/dbus/fake_bluetooth_advertisement_monitor_service_provider.h"
  9. namespace bluez {
  10. FakeBluetoothAdvertisementMonitorApplicationServiceProvider::
  11. FakeBluetoothAdvertisementMonitorApplicationServiceProvider(
  12. const dbus::ObjectPath& object_path) {
  13. FakeBluetoothAdvertisementMonitorManagerClient*
  14. fake_bluetooth_advertisement_monitor_manager_client =
  15. static_cast<FakeBluetoothAdvertisementMonitorManagerClient*>(
  16. bluez::BluezDBusManager::Get()
  17. ->GetBluetoothAdvertisementMonitorManagerClient());
  18. fake_bluetooth_advertisement_monitor_manager_client
  19. ->RegisterApplicationServiceProvider(this);
  20. }
  21. FakeBluetoothAdvertisementMonitorApplicationServiceProvider::
  22. ~FakeBluetoothAdvertisementMonitorApplicationServiceProvider() = default;
  23. void FakeBluetoothAdvertisementMonitorApplicationServiceProvider::AddMonitor(
  24. std::unique_ptr<BluetoothAdvertisementMonitorServiceProvider>
  25. advertisement_monitor_service_provider) {
  26. last_added_advertisement_monitor_provider_path_ =
  27. advertisement_monitor_service_provider->object_path().value();
  28. advertisement_monitor_providers_.insert(std::make_pair(
  29. advertisement_monitor_service_provider->object_path().value(),
  30. std::move(advertisement_monitor_service_provider)));
  31. }
  32. void FakeBluetoothAdvertisementMonitorApplicationServiceProvider::RemoveMonitor(
  33. const dbus::ObjectPath& monitor_path) {
  34. advertisement_monitor_providers_.erase(monitor_path.value());
  35. }
  36. size_t FakeBluetoothAdvertisementMonitorApplicationServiceProvider::
  37. AdvertisementMonitorsCount() const {
  38. return advertisement_monitor_providers_.size();
  39. }
  40. FakeBluetoothAdvertisementMonitorServiceProvider*
  41. FakeBluetoothAdvertisementMonitorApplicationServiceProvider::
  42. GetLastAddedAdvertisementMonitorServiceProvider() {
  43. if (!base::Contains(advertisement_monitor_providers_,
  44. last_added_advertisement_monitor_provider_path_)) {
  45. return nullptr;
  46. }
  47. return static_cast<FakeBluetoothAdvertisementMonitorServiceProvider*>(
  48. advertisement_monitor_providers_
  49. [last_added_advertisement_monitor_provider_path_]
  50. .get());
  51. }
  52. } // namespace bluez