Index: chromeos/dbus/dbus_clients_ash.cc |
diff --git a/chromeos/dbus/dbus_clients_ash.cc b/chromeos/dbus/dbus_clients_ash.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cb94e1e9015f75f4a6dfa4ebe9c8a39c28417b0a |
--- /dev/null |
+++ b/chromeos/dbus/dbus_clients_ash.cc |
@@ -0,0 +1,59 @@ |
+// 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_ash.h" |
+ |
+#include "base/command_line.h" |
+#include "chromeos/chromeos_switches.h" |
+#include "chromeos/dbus/dbus_thread_manager.h" |
+#include "chromeos/dbus/fake_gsm_sms_client.h" |
+#include "chromeos/dbus/fake_modem_messaging_client.h" |
+#include "chromeos/dbus/fake_sms_client.h" |
+#include "chromeos/dbus/gsm_sms_client.h" |
+#include "chromeos/dbus/modem_messaging_client.h" |
+#include "chromeos/dbus/sms_client.h" |
+ |
+namespace chromeos { |
+namespace { |
+ |
+// Avoid ugly casts below. |
+bool IsUsingReal(DBusClientTypeMask real_clients, DBusClientType type) { |
+ return real_clients & static_cast<DBusClientTypeMask>(type); |
+} |
+ |
+} // namespace |
+ |
+DBusClientsAsh::DBusClientsAsh(DBusClientTypeMask real_clients) { |
+ if (IsUsingReal(real_clients, DBusClientType::GSM_SMS)) { |
+ gsm_sms_client_.reset(GsmSMSClient::Create()); |
+ } else { |
+ FakeGsmSMSClient* gsm_sms_client = new FakeGsmSMSClient(); |
+ gsm_sms_client->set_sms_test_message_switch_present( |
+ base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ chromeos::switches::kSmsTestMessages)); |
+ gsm_sms_client_.reset(gsm_sms_client); |
+ } |
+ |
+ if (IsUsingReal(real_clients, DBusClientType::MODEM_MESSAGING)) |
+ modem_messaging_client_.reset(ModemMessagingClient::Create()); |
+ else |
+ modem_messaging_client_.reset(new FakeModemMessagingClient); |
+ |
+ if (IsUsingReal(real_clients, DBusClientType::SMS)) |
+ sms_client_.reset(SMSClient::Create()); |
+ else |
+ sms_client_.reset(new FakeSMSClient); |
+} |
+ |
+DBusClientsAsh::~DBusClientsAsh() {} |
+ |
+void DBusClientsAsh::Initialize(dbus::Bus* system_bus) { |
+ DCHECK(DBusThreadManager::IsInitialized()); |
+ |
+ gsm_sms_client_->Init(system_bus); |
+ modem_messaging_client_->Init(system_bus); |
+ sms_client_->Init(system_bus); |
+} |
+ |
+} // namespace chromeos |