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

Side by Side Diff: chromeos/dbus/dbus_thread_manager.cc

Issue 49773003: ChromeOS: Remove MockDBusThreadManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed tests. Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chromeos/dbus/dbus_thread_manager.h ('k') | chromeos/dbus/fake_dbus_thread_manager.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chromeos/dbus/dbus_thread_manager.h" 5 #include "chromeos/dbus/dbus_thread_manager.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/observer_list.h" 10 #include "base/observer_list.h"
11 #include "base/sys_info.h" 11 #include "base/sys_info.h"
12 #include "base/threading/thread.h" 12 #include "base/threading/thread.h"
13 #include "chromeos/chromeos_switches.h" 13 #include "chromeos/chromeos_switches.h"
14 #include "chromeos/dbus/bluetooth_adapter_client.h" 14 #include "chromeos/dbus/bluetooth_adapter_client.h"
15 #include "chromeos/dbus/bluetooth_agent_manager_client.h" 15 #include "chromeos/dbus/bluetooth_agent_manager_client.h"
16 #include "chromeos/dbus/bluetooth_device_client.h" 16 #include "chromeos/dbus/bluetooth_device_client.h"
17 #include "chromeos/dbus/bluetooth_input_client.h" 17 #include "chromeos/dbus/bluetooth_input_client.h"
18 #include "chromeos/dbus/bluetooth_profile_manager_client.h" 18 #include "chromeos/dbus/bluetooth_profile_manager_client.h"
19 #include "chromeos/dbus/cras_audio_client.h" 19 #include "chromeos/dbus/cras_audio_client.h"
20 #include "chromeos/dbus/cros_disks_client.h" 20 #include "chromeos/dbus/cros_disks_client.h"
21 #include "chromeos/dbus/cryptohome_client.h" 21 #include "chromeos/dbus/cryptohome_client.h"
22 #include "chromeos/dbus/dbus_client.h"
22 #include "chromeos/dbus/dbus_client_implementation_type.h" 23 #include "chromeos/dbus/dbus_client_implementation_type.h"
23 #include "chromeos/dbus/dbus_thread_manager_observer.h" 24 #include "chromeos/dbus/dbus_thread_manager_observer.h"
24 #include "chromeos/dbus/debug_daemon_client.h" 25 #include "chromeos/dbus/debug_daemon_client.h"
26 #include "chromeos/dbus/fake_dbus_thread_manager.h"
25 #include "chromeos/dbus/gsm_sms_client.h" 27 #include "chromeos/dbus/gsm_sms_client.h"
26 #include "chromeos/dbus/ibus/ibus_client.h" 28 #include "chromeos/dbus/ibus/ibus_client.h"
27 #include "chromeos/dbus/image_burner_client.h" 29 #include "chromeos/dbus/image_burner_client.h"
28 #include "chromeos/dbus/introspectable_client.h" 30 #include "chromeos/dbus/introspectable_client.h"
29 #include "chromeos/dbus/modem_messaging_client.h" 31 #include "chromeos/dbus/modem_messaging_client.h"
30 #include "chromeos/dbus/nfc_adapter_client.h" 32 #include "chromeos/dbus/nfc_adapter_client.h"
31 #include "chromeos/dbus/nfc_device_client.h" 33 #include "chromeos/dbus/nfc_device_client.h"
32 #include "chromeos/dbus/nfc_manager_client.h" 34 #include "chromeos/dbus/nfc_manager_client.h"
33 #include "chromeos/dbus/nfc_record_client.h" 35 #include "chromeos/dbus/nfc_record_client.h"
34 #include "chromeos/dbus/nfc_tag_client.h" 36 #include "chromeos/dbus/nfc_tag_client.h"
(...skipping 14 matching lines...) Expand all
49 #include "dbus/dbus_statistics.h" 51 #include "dbus/dbus_statistics.h"
50 52
51 namespace chromeos { 53 namespace chromeos {
52 54
53 static DBusThreadManager* g_dbus_thread_manager = NULL; 55 static DBusThreadManager* g_dbus_thread_manager = NULL;
54 static bool g_dbus_thread_manager_set_for_testing = false; 56 static bool g_dbus_thread_manager_set_for_testing = false;
55 57
56 // The DBusThreadManager implementation used in production. 58 // The DBusThreadManager implementation used in production.
57 class DBusThreadManagerImpl : public DBusThreadManager { 59 class DBusThreadManagerImpl : public DBusThreadManager {
58 public: 60 public:
59 explicit DBusThreadManagerImpl(DBusClientImplementationType client_type) { 61 explicit DBusThreadManagerImpl() {
60 DBusClientImplementationType client_type_override = client_type;
61 // If --dbus-stub was requested, pass STUB to specific components;
62 // Many components like login are not useful with a stub implementation.
63 if (CommandLine::ForCurrentProcess()->HasSwitch(
64 chromeos::switches::kDbusStub)) {
65 client_type_override = STUB_DBUS_CLIENT_IMPLEMENTATION;
66 }
67
68 // Create the D-Bus thread. 62 // Create the D-Bus thread.
69 base::Thread::Options thread_options; 63 base::Thread::Options thread_options;
70 thread_options.message_loop_type = base::MessageLoop::TYPE_IO; 64 thread_options.message_loop_type = base::MessageLoop::TYPE_IO;
71 dbus_thread_.reset(new base::Thread("D-Bus thread")); 65 dbus_thread_.reset(new base::Thread("D-Bus thread"));
72 dbus_thread_->StartWithOptions(thread_options); 66 dbus_thread_->StartWithOptions(thread_options);
73 67
74 // Create the connection to the system bus. 68 // Create the connection to the system bus.
75 dbus::Bus::Options system_bus_options; 69 dbus::Bus::Options system_bus_options;
76 system_bus_options.bus_type = dbus::Bus::SYSTEM; 70 system_bus_options.bus_type = dbus::Bus::SYSTEM;
77 system_bus_options.connection_type = dbus::Bus::PRIVATE; 71 system_bus_options.connection_type = dbus::Bus::PRIVATE;
78 system_bus_options.dbus_task_runner = dbus_thread_->message_loop_proxy(); 72 system_bus_options.dbus_task_runner = dbus_thread_->message_loop_proxy();
79 system_bus_ = new dbus::Bus(system_bus_options); 73 system_bus_ = new dbus::Bus(system_bus_options);
80 74
81 CreateDefaultClients(client_type, client_type_override); 75 CreateDefaultClients();
82 }
83
84 // InitializeClients gets called after g_dbus_thread_manager is set.
85 // NOTE: Clients that access other clients in their Init() must be
86 // initialized in the correct order. This is the only place where Clients'
87 // Init() should be called if DBusThreadManager is being used.
88 void InitializeClients() {
89 InitClient(bluetooth_adapter_client_.get());
90 InitClient(bluetooth_agent_manager_client_.get());
91 InitClient(bluetooth_device_client_.get());
92 InitClient(bluetooth_input_client_.get());
93 InitClient(bluetooth_profile_manager_client_.get());
94 InitClient(cras_audio_client_.get());
95 InitClient(cros_disks_client_.get());
96 InitClient(cryptohome_client_.get());
97 InitClient(debug_daemon_client_.get());
98 InitClient(shill_manager_client_.get());
99 InitClient(shill_device_client_.get());
100 InitClient(shill_ipconfig_client_.get());
101 InitClient(shill_service_client_.get());
102 InitClient(shill_profile_client_.get());
103 InitClient(gsm_sms_client_.get());
104 InitClient(image_burner_client_.get());
105 InitClient(introspectable_client_.get());
106 InitClient(modem_messaging_client_.get());
107 // Initialize the NFC clients in the correct order.
108 InitClient(nfc_manager_client_.get());
109 InitClient(nfc_adapter_client_.get());
110 InitClient(nfc_device_client_.get());
111 InitClient(nfc_tag_client_.get());
112 InitClient(nfc_record_client_.get());
113 InitClient(permission_broker_client_.get());
114 InitClient(power_manager_client_.get());
115 InitClient(session_manager_client_.get());
116 InitClient(sms_client_.get());
117 InitClient(system_clock_client_.get());
118 InitClient(update_engine_client_.get());
119
120 // PowerPolicyController is dependent on PowerManagerClient, so
121 // initialize it after the main list of clients.
122 power_policy_controller_.reset(
123 new PowerPolicyController(this, power_manager_client_.get()));
124
125 shill_stub_helper::SetupDefaultEnvironment();
126
127 // This must be called after the list of clients so they've each had a
128 // chance to register with their object managers.
129 system_bus_->GetManagedObjects();
130 } 76 }
131 77
132 virtual ~DBusThreadManagerImpl() { 78 virtual ~DBusThreadManagerImpl() {
133 FOR_EACH_OBSERVER(DBusThreadManagerObserver, observers_, 79 FOR_EACH_OBSERVER(DBusThreadManagerObserver, observers_,
134 OnDBusThreadManagerDestroying(this)); 80 OnDBusThreadManagerDestroying(this));
135 81
136 // Shut down the bus. During the browser shutdown, it's ok to shut down 82 // Shut down the bus. During the browser shutdown, it's ok to shut down
137 // the bus synchronously. 83 // the bus synchronously.
138 system_bus_->ShutdownOnDBusThreadAndBlock(); 84 system_bus_->ShutdownOnDBusThreadAndBlock();
139 85
140 // Stop the D-Bus thread. 86 // Stop the D-Bus thread.
141 dbus_thread_->Stop(); 87 dbus_thread_->Stop();
142 } 88 }
143 89
144 // DBusThreadManager override. 90 // DBusThreadManager overrides:
145 virtual void AddObserver(DBusThreadManagerObserver* observer) OVERRIDE { 91 virtual void AddObserver(DBusThreadManagerObserver* observer) OVERRIDE {
146 DCHECK(observer); 92 DCHECK(observer);
147 observers_.AddObserver(observer); 93 observers_.AddObserver(observer);
148 } 94 }
149 95
150 // DBusThreadManager override.
151 virtual void RemoveObserver(DBusThreadManagerObserver* observer) OVERRIDE { 96 virtual void RemoveObserver(DBusThreadManagerObserver* observer) OVERRIDE {
152 DCHECK(observer); 97 DCHECK(observer);
153 observers_.RemoveObserver(observer); 98 observers_.RemoveObserver(observer);
154 } 99 }
155 100
156 // DBusThreadManager override.
157 virtual void InitIBusBus( 101 virtual void InitIBusBus(
158 const std::string &ibus_address, 102 const std::string &ibus_address,
159 const base::Closure& on_disconnected_callback) OVERRIDE { 103 const base::Closure& on_disconnected_callback) OVERRIDE {
160 ibus_client_.reset(IBusClient::Create()); 104 ibus_client_.reset(IBusClient::Create());
161 } 105 }
162 106
163 // DBusThreadManager overrides:
164 virtual dbus::Bus* GetSystemBus() OVERRIDE { 107 virtual dbus::Bus* GetSystemBus() OVERRIDE {
165 return system_bus_.get(); 108 return system_bus_.get();
166 } 109 }
167 110
168 virtual BluetoothAdapterClient* GetBluetoothAdapterClient() OVERRIDE { 111 virtual BluetoothAdapterClient* GetBluetoothAdapterClient() OVERRIDE {
169 return bluetooth_adapter_client_.get(); 112 return bluetooth_adapter_client_.get();
170 } 113 }
171 114
172 virtual BluetoothAgentManagerClient* GetBluetoothAgentManagerClient() 115 virtual BluetoothAgentManagerClient* GetBluetoothAgentManagerClient()
173 OVERRIDE { 116 OVERRIDE {
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 228
286 virtual UpdateEngineClient* GetUpdateEngineClient() OVERRIDE { 229 virtual UpdateEngineClient* GetUpdateEngineClient() OVERRIDE {
287 return update_engine_client_.get(); 230 return update_engine_client_.get();
288 } 231 }
289 232
290 virtual IBusClient* GetIBusClient() OVERRIDE { 233 virtual IBusClient* GetIBusClient() OVERRIDE {
291 return ibus_client_.get(); 234 return ibus_client_.get();
292 } 235 }
293 236
294 private: 237 private:
295 // Initializes |client| with the |system_bus_|.
296 void InitClient(DBusClient* client) {
297 client->Init(system_bus_.get());
298 }
299
300 // Constructs all clients -- stub or real implementation according to 238 // Constructs all clients -- stub or real implementation according to
301 // |client_type| and |client_type_override| -- and stores them in the 239 // |client_type| and |client_type_override| -- and stores them in the
302 // respective *_client_ member variable. 240 // respective *_client_ member variable.
303 void CreateDefaultClients(DBusClientImplementationType client_type, 241 void CreateDefaultClients() {
304 DBusClientImplementationType client_type_override) { 242 DBusClientImplementationType client_type = REAL_DBUS_CLIENT_IMPLEMENTATION;
243 DBusClientImplementationType client_type_override =
244 REAL_DBUS_CLIENT_IMPLEMENTATION;
245 // If --dbus-stub was requested, pass STUB to specific components;
246 // Many components like login are not useful with a stub implementation.
247 if (CommandLine::ForCurrentProcess()->HasSwitch(
248 chromeos::switches::kDbusStub)) {
249 client_type_override = STUB_DBUS_CLIENT_IMPLEMENTATION;
250 }
251
305 bluetooth_adapter_client_.reset( 252 bluetooth_adapter_client_.reset(
306 BluetoothAdapterClient::Create(client_type)); 253 BluetoothAdapterClient::Create(client_type));
307 bluetooth_agent_manager_client_.reset( 254 bluetooth_agent_manager_client_.reset(
308 BluetoothAgentManagerClient::Create(client_type)); 255 BluetoothAgentManagerClient::Create(client_type));
309 bluetooth_device_client_.reset(BluetoothDeviceClient::Create(client_type)); 256 bluetooth_device_client_.reset(BluetoothDeviceClient::Create(client_type));
310 bluetooth_input_client_.reset(BluetoothInputClient::Create(client_type)); 257 bluetooth_input_client_.reset(BluetoothInputClient::Create(client_type));
311 bluetooth_profile_manager_client_.reset( 258 bluetooth_profile_manager_client_.reset(
312 BluetoothProfileManagerClient::Create(client_type)); 259 BluetoothProfileManagerClient::Create(client_type));
313 cras_audio_client_.reset(CrasAudioClient::Create(client_type)); 260 cras_audio_client_.reset(CrasAudioClient::Create(client_type));
314 cros_disks_client_.reset(CrosDisksClient::Create(client_type)); 261 cros_disks_client_.reset(CrosDisksClient::Create(client_type));
(...skipping 25 matching lines...) Expand all
340 NfcRecordClient::Create( 287 NfcRecordClient::Create(
341 client_type, nfc_device_client_.get(), nfc_tag_client_.get())); 288 client_type, nfc_device_client_.get(), nfc_tag_client_.get()));
342 permission_broker_client_.reset( 289 permission_broker_client_.reset(
343 PermissionBrokerClient::Create(client_type)); 290 PermissionBrokerClient::Create(client_type));
344 power_manager_client_.reset( 291 power_manager_client_.reset(
345 PowerManagerClient::Create(client_type_override)); 292 PowerManagerClient::Create(client_type_override));
346 session_manager_client_.reset(SessionManagerClient::Create(client_type)); 293 session_manager_client_.reset(SessionManagerClient::Create(client_type));
347 sms_client_.reset(SMSClient::Create(client_type)); 294 sms_client_.reset(SMSClient::Create(client_type));
348 system_clock_client_.reset(SystemClockClient::Create(client_type)); 295 system_clock_client_.reset(SystemClockClient::Create(client_type));
349 update_engine_client_.reset(UpdateEngineClient::Create(client_type)); 296 update_engine_client_.reset(UpdateEngineClient::Create(client_type));
297
298 power_policy_controller_.reset(new PowerPolicyController);
350 } 299 }
351 300
352 // Note: Keep this before other members so they can call AddObserver() in 301 // Note: Keep this before other members so they can call AddObserver() in
353 // their c'tors. 302 // their c'tors.
354 ObserverList<DBusThreadManagerObserver> observers_; 303 ObserverList<DBusThreadManagerObserver> observers_;
355 304
356 scoped_ptr<base::Thread> dbus_thread_; 305 scoped_ptr<base::Thread> dbus_thread_;
357 scoped_refptr<dbus::Bus> system_bus_; 306 scoped_refptr<dbus::Bus> system_bus_;
358 scoped_ptr<BluetoothAdapterClient> bluetooth_adapter_client_; 307 scoped_ptr<BluetoothAdapterClient> bluetooth_adapter_client_;
359 scoped_ptr<BluetoothAgentManagerClient> bluetooth_agent_manager_client_; 308 scoped_ptr<BluetoothAgentManagerClient> bluetooth_agent_manager_client_;
(...skipping 20 matching lines...) Expand all
380 scoped_ptr<NfcDeviceClient> nfc_device_client_; 329 scoped_ptr<NfcDeviceClient> nfc_device_client_;
381 scoped_ptr<NfcTagClient> nfc_tag_client_; 330 scoped_ptr<NfcTagClient> nfc_tag_client_;
382 scoped_ptr<NfcRecordClient> nfc_record_client_; 331 scoped_ptr<NfcRecordClient> nfc_record_client_;
383 scoped_ptr<PermissionBrokerClient> permission_broker_client_; 332 scoped_ptr<PermissionBrokerClient> permission_broker_client_;
384 scoped_ptr<SystemClockClient> system_clock_client_; 333 scoped_ptr<SystemClockClient> system_clock_client_;
385 scoped_ptr<PowerManagerClient> power_manager_client_; 334 scoped_ptr<PowerManagerClient> power_manager_client_;
386 scoped_ptr<SessionManagerClient> session_manager_client_; 335 scoped_ptr<SessionManagerClient> session_manager_client_;
387 scoped_ptr<SMSClient> sms_client_; 336 scoped_ptr<SMSClient> sms_client_;
388 scoped_ptr<UpdateEngineClient> update_engine_client_; 337 scoped_ptr<UpdateEngineClient> update_engine_client_;
389 scoped_ptr<IBusClient> ibus_client_; 338 scoped_ptr<IBusClient> ibus_client_;
339
390 scoped_ptr<PowerPolicyController> power_policy_controller_; 340 scoped_ptr<PowerPolicyController> power_policy_controller_;
391
392 }; 341 };
393 342
394 // static 343 // static
395 void DBusThreadManager::Initialize() { 344 void DBusThreadManager::Initialize() {
396 // Ignore Initialize() if we set a test DBusThreadManager. 345 // Ignore Initialize() if we set a test DBusThreadManager.
397 if (g_dbus_thread_manager_set_for_testing) 346 if (g_dbus_thread_manager_set_for_testing)
398 return; 347 return;
399 // If we initialize DBusThreadManager twice we may also be shutting it down 348 // If we initialize DBusThreadManager twice we may also be shutting it down
400 // early; do not allow that. 349 // early; do not allow that.
401 CHECK(g_dbus_thread_manager == NULL); 350 CHECK(g_dbus_thread_manager == NULL);
351
402 // Determine whether we use stub or real client implementations. 352 // Determine whether we use stub or real client implementations.
403 DBusThreadManagerImpl* dbus_thread_manager_impl;
404 if (base::SysInfo::IsRunningOnChromeOS()) { 353 if (base::SysInfo::IsRunningOnChromeOS()) {
405 dbus_thread_manager_impl = 354 g_dbus_thread_manager = new DBusThreadManagerImpl;
406 new DBusThreadManagerImpl(REAL_DBUS_CLIENT_IMPLEMENTATION); 355 InitializeClients();
407 VLOG(1) << "DBusThreadManager initialized for ChromeOS"; 356 VLOG(1) << "DBusThreadManager initialized for ChromeOS";
408 } else { 357 } else {
409 dbus_thread_manager_impl = 358 InitializeWithStub();
410 new DBusThreadManagerImpl(STUB_DBUS_CLIENT_IMPLEMENTATION); 359 return;
411 VLOG(1) << "DBusThreadManager initialized with Stub";
412 } 360 }
413 g_dbus_thread_manager = dbus_thread_manager_impl;
414 dbus_thread_manager_impl->InitializeClients();
415 } 361 }
416 362
417 // static 363 // static
418 void DBusThreadManager::InitializeForTesting( 364 void DBusThreadManager::InitializeForTesting(
419 DBusThreadManager* dbus_thread_manager) { 365 DBusThreadManager* dbus_thread_manager) {
420 // If we initialize DBusThreadManager twice we may also be shutting it down 366 // If we initialize DBusThreadManager twice we may also be shutting it down
421 // early; do not allow that. 367 // early; do not allow that.
422 CHECK(g_dbus_thread_manager == NULL); 368 CHECK(g_dbus_thread_manager == NULL);
423 CHECK(dbus_thread_manager); 369 CHECK(dbus_thread_manager);
424 g_dbus_thread_manager = dbus_thread_manager; 370 g_dbus_thread_manager = dbus_thread_manager;
425 g_dbus_thread_manager_set_for_testing = true; 371 g_dbus_thread_manager_set_for_testing = true;
372 InitializeClients();
426 VLOG(1) << "DBusThreadManager initialized with test implementation"; 373 VLOG(1) << "DBusThreadManager initialized with test implementation";
427 } 374 }
428 375
429 // static 376 // static
430 void DBusThreadManager::InitializeWithStub() { 377 void DBusThreadManager::InitializeWithStub() {
431 // If we initialize DBusThreadManager twice we may also be shutting it down 378 // If we initialize DBusThreadManager twice we may also be shutting it down
432 // early; do not allow that. 379 // early; do not allow that.
433 CHECK(g_dbus_thread_manager == NULL); 380 CHECK(g_dbus_thread_manager == NULL);
434 DBusThreadManagerImpl* dbus_thread_manager_impl = 381 FakeDBusThreadManager* fake_dbus_thread_manager = new FakeDBusThreadManager;
435 new DBusThreadManagerImpl(STUB_DBUS_CLIENT_IMPLEMENTATION); 382 fake_dbus_thread_manager->SetFakeClients();
436 g_dbus_thread_manager = dbus_thread_manager_impl; 383 g_dbus_thread_manager = fake_dbus_thread_manager;
437 dbus_thread_manager_impl->InitializeClients(); 384 InitializeClients();
385 shill_stub_helper::SetupDefaultEnvironment();
438 VLOG(1) << "DBusThreadManager initialized with stub implementation"; 386 VLOG(1) << "DBusThreadManager initialized with stub implementation";
439 } 387 }
440 388
441 // static 389 // static
442 bool DBusThreadManager::IsInitialized() { 390 bool DBusThreadManager::IsInitialized() {
443 return g_dbus_thread_manager != NULL; 391 return g_dbus_thread_manager != NULL;
444 } 392 }
445 393
446 // static 394 // static
447 void DBusThreadManager::Shutdown() { 395 void DBusThreadManager::Shutdown() {
(...skipping 25 matching lines...) Expand all
473 } 421 }
474 } 422 }
475 423
476 // static 424 // static
477 DBusThreadManager* DBusThreadManager::Get() { 425 DBusThreadManager* DBusThreadManager::Get() {
478 CHECK(g_dbus_thread_manager) 426 CHECK(g_dbus_thread_manager)
479 << "DBusThreadManager::Get() called before Initialize()"; 427 << "DBusThreadManager::Get() called before Initialize()";
480 return g_dbus_thread_manager; 428 return g_dbus_thread_manager;
481 } 429 }
482 430
431 // static
432 void DBusThreadManager::InitializeClients() {
433 InitClient(g_dbus_thread_manager->GetBluetoothAdapterClient());
434 InitClient(g_dbus_thread_manager->GetBluetoothAgentManagerClient());
435 InitClient(g_dbus_thread_manager->GetBluetoothDeviceClient());
436 InitClient(g_dbus_thread_manager->GetBluetoothInputClient());
437 InitClient(g_dbus_thread_manager->GetBluetoothProfileManagerClient());
438 InitClient(g_dbus_thread_manager->GetCrasAudioClient());
439 InitClient(g_dbus_thread_manager->GetCrosDisksClient());
440 InitClient(g_dbus_thread_manager->GetCryptohomeClient());
441 InitClient(g_dbus_thread_manager->GetDebugDaemonClient());
442 InitClient(g_dbus_thread_manager->GetGsmSMSClient());
443 InitClient(g_dbus_thread_manager->GetImageBurnerClient());
444 InitClient(g_dbus_thread_manager->GetIntrospectableClient());
445 InitClient(g_dbus_thread_manager->GetModemMessagingClient());
446 // Initialize the NFC clients in the correct order.
447 InitClient(g_dbus_thread_manager->GetNfcAdapterClient());
448 InitClient(g_dbus_thread_manager->GetNfcManagerClient());
449 InitClient(g_dbus_thread_manager->GetNfcDeviceClient());
450 InitClient(g_dbus_thread_manager->GetNfcTagClient());
451 InitClient(g_dbus_thread_manager->GetPermissionBrokerClient());
452 InitClient(g_dbus_thread_manager->GetPowerManagerClient());
453 InitClient(g_dbus_thread_manager->GetSessionManagerClient());
454 InitClient(g_dbus_thread_manager->GetShillDeviceClient());
455 InitClient(g_dbus_thread_manager->GetShillIPConfigClient());
456 InitClient(g_dbus_thread_manager->GetShillManagerClient());
457 InitClient(g_dbus_thread_manager->GetShillServiceClient());
458 InitClient(g_dbus_thread_manager->GetShillProfileClient());
459 InitClient(g_dbus_thread_manager->GetSMSClient());
460 InitClient(g_dbus_thread_manager->GetSystemClockClient());
461 InitClient(g_dbus_thread_manager->GetUpdateEngineClient());
462
463 // PowerPolicyController is dependent on PowerManagerClient, so
464 // initialize it after the main list of clients.
465 if (g_dbus_thread_manager->GetPowerPolicyController()) {
466 g_dbus_thread_manager->GetPowerPolicyController()->Init(
467 g_dbus_thread_manager);
468 }
469
470 // This must be called after the list of clients so they've each had a
471 // chance to register with their object g_dbus_thread_managers.
472 if (g_dbus_thread_manager->GetSystemBus())
473 g_dbus_thread_manager->GetSystemBus()->GetManagedObjects();
474 }
475
476 // static
477 void DBusThreadManager::InitClient(DBusClient* client) {
478 if (client)
479 client->Init(g_dbus_thread_manager->GetSystemBus());
480 }
481
483 } // namespace chromeos 482 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/dbus_thread_manager.h ('k') | chromeos/dbus/fake_dbus_thread_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698