Index: chromeos/dbus/dbus_clients_browser.cc |
diff --git a/chromeos/dbus/dbus_clients_browser.cc b/chromeos/dbus/dbus_clients_browser.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..52092190a858735d3f7307bb8417d716e5f1d9ca |
--- /dev/null |
+++ b/chromeos/dbus/dbus_clients_browser.cc |
@@ -0,0 +1,76 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chromeos/dbus/dbus_clients_browser.h" |
+ |
+#include "base/logging.h" |
+#include "chromeos/dbus/arc_obb_mounter_client.h" |
+#include "chromeos/dbus/cros_disks_client.h" |
+#include "chromeos/dbus/dbus_thread_manager.h" |
+#include "chromeos/dbus/debug_daemon_client.h" |
+#include "chromeos/dbus/easy_unlock_client.h" |
+#include "chromeos/dbus/fake_arc_obb_mounter_client.h" |
+#include "chromeos/dbus/fake_debug_daemon_client.h" |
+#include "chromeos/dbus/fake_easy_unlock_client.h" |
+#include "chromeos/dbus/fake_image_burner_client.h" |
+#include "chromeos/dbus/fake_lorgnette_manager_client.h" |
+#include "chromeos/dbus/image_burner_client.h" |
+#include "chromeos/dbus/lorgnette_manager_client.h" |
+ |
+namespace chromeos { |
+namespace { |
+ |
+// Avoid ugly casts below. |
+bool IsUsingReal(DBusClientTypeMask real_clients, DBusClientType type) { |
+ return real_clients & static_cast<DBusClientTypeMask>(type); |
+} |
+ |
+} // namespace |
+ |
+DBusClientsBrowser::DBusClientsBrowser(DBusClientTypeMask real_clients) { |
+ if (IsUsingReal(real_clients, DBusClientType::ARC_OBB_MOUNTER)) |
+ arc_obb_mounter_client_.reset(ArcObbMounterClient::Create()); |
+ else |
+ arc_obb_mounter_client_.reset(new FakeArcObbMounterClient); |
+ |
+ cros_disks_client_.reset(CrosDisksClient::Create( |
+ IsUsingReal(real_clients, DBusClientType::CROS_DISKS) |
+ ? REAL_DBUS_CLIENT_IMPLEMENTATION |
+ : FAKE_DBUS_CLIENT_IMPLEMENTATION)); |
+ |
+ if (IsUsingReal(real_clients, DBusClientType::DEBUG_DAEMON)) |
+ debug_daemon_client_.reset(DebugDaemonClient::Create()); |
+ else |
+ debug_daemon_client_.reset(new FakeDebugDaemonClient); |
+ |
+ if (IsUsingReal(real_clients, DBusClientType::EASY_UNLOCK)) |
+ easy_unlock_client_.reset(EasyUnlockClient::Create()); |
+ else |
+ easy_unlock_client_.reset(new FakeEasyUnlockClient); |
+ |
+ if (IsUsingReal(real_clients, DBusClientType::IMAGE_BURNER)) |
+ image_burner_client_.reset(ImageBurnerClient::Create()); |
+ else |
+ image_burner_client_.reset(new FakeImageBurnerClient); |
+ |
+ if (IsUsingReal(real_clients, DBusClientType::LORGNETTE_MANAGER)) |
+ lorgnette_manager_client_.reset(LorgnetteManagerClient::Create()); |
+ else |
+ lorgnette_manager_client_.reset(new FakeLorgnetteManagerClient); |
+} |
+ |
+DBusClientsBrowser::~DBusClientsBrowser() {} |
+ |
+void DBusClientsBrowser::Initialize(dbus::Bus* system_bus) { |
+ DCHECK(DBusThreadManager::IsInitialized()); |
+ |
+ arc_obb_mounter_client_->Init(system_bus); |
+ cros_disks_client_->Init(system_bus); |
+ debug_daemon_client_->Init(system_bus); |
+ easy_unlock_client_->Init(system_bus); |
+ image_burner_client_->Init(system_bus); |
+ lorgnette_manager_client_->Init(system_bus); |
+} |
+ |
+} // namespace chromeos |