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

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

Issue 10159004: Extends DBusThreadManager to connect ibus-bus. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix nits Created 8 years, 7 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 unified diff | Download patch
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 "base/chromeos/chromeos_version.h" 7 #include "base/chromeos/chromeos_version.h"
8 #include "base/threading/thread.h" 8 #include "base/threading/thread.h"
9 #include "chromeos/dbus/bluetooth_adapter_client.h" 9 #include "chromeos/dbus/bluetooth_adapter_client.h"
10 #include "chromeos/dbus/bluetooth_device_client.h" 10 #include "chromeos/dbus/bluetooth_device_client.h"
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 virtual ~DBusThreadManagerImpl() { 124 virtual ~DBusThreadManagerImpl() {
125 // Shut down the bus. During the browser shutdown, it's ok to shut down 125 // Shut down the bus. During the browser shutdown, it's ok to shut down
126 // the bus synchronously. 126 // the bus synchronously.
127 system_bus_->ShutdownOnDBusThreadAndBlock(); 127 system_bus_->ShutdownOnDBusThreadAndBlock();
128 128
129 // Stop the D-Bus thread. 129 // Stop the D-Bus thread.
130 dbus_thread_->Stop(); 130 dbus_thread_->Stop();
131 } 131 }
132 132
133 // DBusThreadManager override. 133 // DBusThreadManager override.
134 virtual void MaybeResetIBusBus(const std::string &ibus_address) OVERRIDE {
135 if (ibus_address_ == ibus_address) {
136 // If current address is same as specified, do nothing.
137 return;
138 }
139
140 if (ibus_bus_) {
141 // If old connection is alive, shutdown it at first.
142 ibus_bus_->ShutdownOnDBusThreadAndBlock();
143 }
144 dbus::Bus::Options ibus_bus_options;
145 ibus_bus_options.bus_type = dbus::Bus::CUSTOM_ADDRESS;
146 ibus_bus_options.address = ibus_address;
147 ibus_bus_options.connection_type = dbus::Bus::PRIVATE;
148 ibus_bus_options.dbus_thread_message_loop_proxy =
149 dbus_thread_->message_loop_proxy();
150 ibus_bus_ = new dbus::Bus(ibus_bus_options);
151 ibus_address_ = ibus_address;
152 VLOG(1) << "Connected to ibus-daemon.(address:" << ibus_address << ")";
153 }
154
155 // DBusThreadManager override.
134 virtual dbus::Bus* GetSystemBus() OVERRIDE { 156 virtual dbus::Bus* GetSystemBus() OVERRIDE {
135 return system_bus_.get(); 157 return system_bus_.get();
136 } 158 }
137 159
138 // DBusThreadManager override. 160 // DBusThreadManager override.
161 virtual dbus::Bus* GetIBusBus() OVERRIDE {
162 return ibus_bus_.get();
163 }
164
165 // DBusThreadManager override.
139 virtual BluetoothAdapterClient* GetBluetoothAdapterClient() OVERRIDE { 166 virtual BluetoothAdapterClient* GetBluetoothAdapterClient() OVERRIDE {
140 return bluetooth_adapter_client_.get(); 167 return bluetooth_adapter_client_.get();
141 } 168 }
142 169
143 // DBusThreadManager override. 170 // DBusThreadManager override.
144 virtual BluetoothDeviceClient* GetBluetoothDeviceClient() OVERRIDE { 171 virtual BluetoothDeviceClient* GetBluetoothDeviceClient() OVERRIDE {
145 return bluetooth_device_client_.get(); 172 return bluetooth_device_client_.get();
146 } 173 }
147 174
148 // DBusThreadManager override. 175 // DBusThreadManager override.
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 return speech_synthesizer_client_.get(); 267 return speech_synthesizer_client_.get();
241 } 268 }
242 269
243 // DBusThreadManager override. 270 // DBusThreadManager override.
244 virtual UpdateEngineClient* GetUpdateEngineClient() OVERRIDE { 271 virtual UpdateEngineClient* GetUpdateEngineClient() OVERRIDE {
245 return update_engine_client_.get(); 272 return update_engine_client_.get();
246 } 273 }
247 274
248 scoped_ptr<base::Thread> dbus_thread_; 275 scoped_ptr<base::Thread> dbus_thread_;
249 scoped_refptr<dbus::Bus> system_bus_; 276 scoped_refptr<dbus::Bus> system_bus_;
277 scoped_refptr<dbus::Bus> ibus_bus_;
250 scoped_ptr<BluetoothAdapterClient> bluetooth_adapter_client_; 278 scoped_ptr<BluetoothAdapterClient> bluetooth_adapter_client_;
251 scoped_ptr<BluetoothDeviceClient> bluetooth_device_client_; 279 scoped_ptr<BluetoothDeviceClient> bluetooth_device_client_;
252 scoped_ptr<BluetoothInputClient> bluetooth_input_client_; 280 scoped_ptr<BluetoothInputClient> bluetooth_input_client_;
253 scoped_ptr<BluetoothManagerClient> bluetooth_manager_client_; 281 scoped_ptr<BluetoothManagerClient> bluetooth_manager_client_;
254 scoped_ptr<BluetoothNodeClient> bluetooth_node_client_; 282 scoped_ptr<BluetoothNodeClient> bluetooth_node_client_;
255 scoped_ptr<CashewClient> cashew_client_; 283 scoped_ptr<CashewClient> cashew_client_;
256 scoped_ptr<CrosDisksClient> cros_disks_client_; 284 scoped_ptr<CrosDisksClient> cros_disks_client_;
257 scoped_ptr<CryptohomeClient> cryptohome_client_; 285 scoped_ptr<CryptohomeClient> cryptohome_client_;
258 scoped_ptr<DebugDaemonClient> debugdaemon_client_; 286 scoped_ptr<DebugDaemonClient> debugdaemon_client_;
259 scoped_ptr<FlimflamDeviceClient> flimflam_device_client_; 287 scoped_ptr<FlimflamDeviceClient> flimflam_device_client_;
260 scoped_ptr<FlimflamIPConfigClient> flimflam_ipconfig_client_; 288 scoped_ptr<FlimflamIPConfigClient> flimflam_ipconfig_client_;
261 scoped_ptr<FlimflamManagerClient> flimflam_manager_client_; 289 scoped_ptr<FlimflamManagerClient> flimflam_manager_client_;
262 scoped_ptr<FlimflamNetworkClient> flimflam_network_client_; 290 scoped_ptr<FlimflamNetworkClient> flimflam_network_client_;
263 scoped_ptr<FlimflamProfileClient> flimflam_profile_client_; 291 scoped_ptr<FlimflamProfileClient> flimflam_profile_client_;
264 scoped_ptr<FlimflamServiceClient> flimflam_service_client_; 292 scoped_ptr<FlimflamServiceClient> flimflam_service_client_;
265 scoped_ptr<GsmSMSClient> gsm_sms_client_; 293 scoped_ptr<GsmSMSClient> gsm_sms_client_;
266 scoped_ptr<ImageBurnerClient> image_burner_client_; 294 scoped_ptr<ImageBurnerClient> image_burner_client_;
267 scoped_ptr<IntrospectableClient> introspectable_client_; 295 scoped_ptr<IntrospectableClient> introspectable_client_;
268 scoped_ptr<PowerManagerClient> power_manager_client_; 296 scoped_ptr<PowerManagerClient> power_manager_client_;
269 scoped_ptr<SessionManagerClient> session_manager_client_; 297 scoped_ptr<SessionManagerClient> session_manager_client_;
270 scoped_ptr<SpeechSynthesizerClient> speech_synthesizer_client_; 298 scoped_ptr<SpeechSynthesizerClient> speech_synthesizer_client_;
271 scoped_ptr<UpdateEngineClient> update_engine_client_; 299 scoped_ptr<UpdateEngineClient> update_engine_client_;
300
301 std::string ibus_address_;
272 }; 302 };
273 303
274 // static 304 // static
275 void DBusThreadManager::Initialize() { 305 void DBusThreadManager::Initialize() {
276 if (g_dbus_thread_manager) { 306 if (g_dbus_thread_manager) {
277 LOG(WARNING) << "DBusThreadManager was already initialized"; 307 LOG(WARNING) << "DBusThreadManager was already initialized";
278 return; 308 return;
279 } 309 }
280 g_dbus_thread_manager = new DBusThreadManagerImpl; 310 g_dbus_thread_manager = new DBusThreadManagerImpl;
281 VLOG(1) << "DBusThreadManager initialized"; 311 VLOG(1) << "DBusThreadManager initialized";
(...skipping 29 matching lines...) Expand all
311 } 341 }
312 342
313 // static 343 // static
314 DBusThreadManager* DBusThreadManager::Get() { 344 DBusThreadManager* DBusThreadManager::Get() {
315 CHECK(g_dbus_thread_manager) 345 CHECK(g_dbus_thread_manager)
316 << "DBusThreadManager::Get() called before Initialize()"; 346 << "DBusThreadManager::Get() called before Initialize()";
317 return g_dbus_thread_manager; 347 return g_dbus_thread_manager;
318 } 348 }
319 349
320 } // namespace chromeos 350 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698