Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Unified Diff: chromeos/dbus/dbus_clients_ash.cc

Issue 2343993003: chromeos: Refactor D-Bus client creation for ash and browser processes (Closed)
Patch Set: cleanup, extend tests Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698