blob: 33887c818e74a39eaf55b4b14f331ee5f723f8de [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "device/bluetooth/dbus/bluetooth_dbus_client_bundle.h"
#include <memory>
#include <vector>
#include "base/command_line.h"
#include "base/logging.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "chromeos/constants/chromeos_features.h"
#include "device/bluetooth/dbus/bluetooth_adapter_client.h"
#include "device/bluetooth/dbus/bluetooth_admin_policy_client.h"
#include "device/bluetooth/dbus/bluetooth_advertisement_monitor_manager_client.h"
#include "device/bluetooth/dbus/bluetooth_agent_manager_client.h"
#include "device/bluetooth/dbus/bluetooth_battery_client.h"
#include "device/bluetooth/dbus/bluetooth_debug_manager_client.h"
#include "device/bluetooth/dbus/bluetooth_device_client.h"
#include "device/bluetooth/dbus/bluetooth_gatt_characteristic_client.h"
#include "device/bluetooth/dbus/bluetooth_gatt_descriptor_client.h"
#include "device/bluetooth/dbus/bluetooth_gatt_manager_client.h"
#include "device/bluetooth/dbus/bluetooth_gatt_service_client.h"
#include "device/bluetooth/dbus/bluetooth_input_client.h"
#include "device/bluetooth/dbus/bluetooth_le_advertising_manager_client.h"
#include "device/bluetooth/dbus/bluetooth_profile_manager_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_adapter_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_admin_policy_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_advertisement_monitor_manager_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_agent_manager_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_battery_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_debug_manager_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_device_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_gatt_characteristic_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_gatt_descriptor_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_gatt_manager_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_gatt_service_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_input_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_le_advertising_manager_client.h"
#include "device/bluetooth/dbus/fake_bluetooth_profile_manager_client.h"
namespace bluez {
BluetoothDBusClientBundle::BluetoothDBusClientBundle(bool use_fakes)
: use_fakes_(use_fakes) {
if (!use_fakes_) {
bluetooth_adapter_client_.reset(BluetoothAdapterClient::Create());
bluetooth_admin_policy_client_ = BluetoothAdminPolicyClient::Create();
bluetooth_le_advertising_manager_client_.reset(
BluetoothLEAdvertisingManagerClient::Create());
#if BUILDFLAG(IS_CHROMEOS)
bluetooth_advertisement_monitor_manager_client_ =
BluetoothAdvertisementMonitorManagerClient::Create();
#endif // BUILDFLAG(IS_CHROMEOS)
bluetooth_agent_manager_client_.reset(
BluetoothAgentManagerClient::Create());
bluetooth_battery_client_.reset(BluetoothBatteryClient::Create());
bluetooth_debug_manager_client_.reset(
BluetoothDebugManagerClient::Create());
bluetooth_device_client_.reset(BluetoothDeviceClient::Create());
bluetooth_input_client_.reset(BluetoothInputClient::Create());
bluetooth_profile_manager_client_.reset(
BluetoothProfileManagerClient::Create());
bluetooth_gatt_characteristic_client_.reset(
BluetoothGattCharacteristicClient::Create());
bluetooth_gatt_descriptor_client_.reset(
BluetoothGattDescriptorClient::Create());
bluetooth_gatt_manager_client_.reset(BluetoothGattManagerClient::Create());
bluetooth_gatt_service_client_.reset(BluetoothGattServiceClient::Create());
alternate_bluetooth_adapter_client_.reset(BluetoothAdapterClient::Create());
alternate_bluetooth_admin_policy_client_ =
BluetoothAdminPolicyClient::Create();
alternate_bluetooth_device_client_.reset(BluetoothDeviceClient::Create());
} else {
#if defined(USE_REAL_DBUS_CLIENTS)
LOG(FATAL) << "Fakes are unavailable if USE_REAL_DBUS_CLIENTS is defined.";
#else
bluetooth_adapter_client_ = std::make_unique<FakeBluetoothAdapterClient>();
bluetooth_admin_policy_client_ =
std::make_unique<FakeBluetoothAdminPolicyClient>();
bluetooth_le_advertising_manager_client_ =
std::make_unique<FakeBluetoothLEAdvertisingManagerClient>();
#if BUILDFLAG(IS_CHROMEOS)
bluetooth_advertisement_monitor_manager_client_ =
std::make_unique<FakeBluetoothAdvertisementMonitorManagerClient>();
#endif // BUILDFLAG(IS_CHROMEOS)
bluetooth_agent_manager_client_ =
std::make_unique<FakeBluetoothAgentManagerClient>();
bluetooth_battery_client_ = std::make_unique<FakeBluetoothBatteryClient>();
bluetooth_debug_manager_client_ =
std::make_unique<FakeBluetoothDebugManagerClient>();
bluetooth_device_client_ = std::make_unique<FakeBluetoothDeviceClient>();
bluetooth_input_client_ = std::make_unique<FakeBluetoothInputClient>();
bluetooth_profile_manager_client_ =
std::make_unique<FakeBluetoothProfileManagerClient>();
bluetooth_gatt_characteristic_client_ =
std::make_unique<FakeBluetoothGattCharacteristicClient>();
bluetooth_gatt_descriptor_client_ =
std::make_unique<FakeBluetoothGattDescriptorClient>();
bluetooth_gatt_manager_client_ =
std::make_unique<FakeBluetoothGattManagerClient>();
bluetooth_gatt_service_client_ =
std::make_unique<FakeBluetoothGattServiceClient>();
alternate_bluetooth_adapter_client_ =
std::make_unique<FakeBluetoothAdapterClient>();
alternate_bluetooth_admin_policy_client_ =
std::make_unique<FakeBluetoothAdminPolicyClient>();
alternate_bluetooth_device_client_ =
std::make_unique<FakeBluetoothDeviceClient>();
#endif // defined(USE_REAL_DBUS_CLIENTS)
}
}
BluetoothDBusClientBundle::~BluetoothDBusClientBundle() = default;
} // namespace bluez