Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/ime/ibus_daemon_controller.h" | 5 #include "chromeos/ime/ibus_daemon_controller.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/chromeos/chromeos_version.h" | 8 #include "base/chromeos/chromeos_version.h" |
| 9 #include "base/environment.h" | 9 #include "base/environment.h" |
| 10 #include "base/files/file_path_watcher.h" | 10 #include "base/files/file_path_watcher.h" |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 256 | 256 |
| 257 ObserverList<Observer> observers_; | 257 ObserverList<Observer> observers_; |
| 258 base::ThreadChecker thread_checker_; | 258 base::ThreadChecker thread_checker_; |
| 259 | 259 |
| 260 // Used for making callbacks for PostTask. | 260 // Used for making callbacks for PostTask. |
| 261 base::WeakPtrFactory<IBusDaemonControllerImpl> weak_ptr_factory_; | 261 base::WeakPtrFactory<IBusDaemonControllerImpl> weak_ptr_factory_; |
| 262 | 262 |
| 263 DISALLOW_COPY_AND_ASSIGN(IBusDaemonControllerImpl); | 263 DISALLOW_COPY_AND_ASSIGN(IBusDaemonControllerImpl); |
| 264 }; | 264 }; |
| 265 | 265 |
| 266 // The stub implementation of IBusDaemonController. | 266 // An implementation of IBusDaemonController without ibus-daemon interaction. |
| 267 class IBusDaemonControllerStubImpl : public IBusDaemonController { | 267 // Currently this class is used only on linux desktop. |
| 268 // TODO(nona): Remove IBusDaemonControlelr this once crbug.com/171351 is fixed. | |
| 269 class IBusDaemonControllerDaemonlessImpl : public IBusDaemonController { | |
| 268 public: | 270 public: |
| 269 IBusDaemonControllerStubImpl() {} | 271 IBusDaemonControllerDaemonlessImpl() |
| 270 virtual ~IBusDaemonControllerStubImpl() {} | 272 : is_started_(false) {} |
| 273 virtual ~IBusDaemonControllerDaemonlessImpl() {} | |
| 271 | 274 |
| 272 // IBusDaemonController overrides: | 275 // IBusDaemonController overrides: |
| 273 virtual void AddObserver(Observer* observer) OVERRIDE {} | 276 virtual void AddObserver(Observer* observer) OVERRIDE { |
| 274 virtual void RemoveObserver(Observer* observer) OVERRIDE {} | 277 observers_.AddObserver(observer); |
| 275 virtual bool Start() OVERRIDE { return true; } | 278 } |
| 276 virtual bool Stop() OVERRIDE { return true; } | 279 |
| 280 virtual void RemoveObserver(Observer* observer) OVERRIDE { | |
| 281 observers_.RemoveObserver(observer); | |
| 282 } | |
| 283 | |
| 284 virtual bool Start() OVERRIDE { | |
| 285 if (is_started_) | |
| 286 return false; | |
| 287 DBusThreadManager::Get()->InitIBusBus("dummy address", | |
|
satorux1
2013/03/11 01:24:29
The word "dummy" worries me. Please explain why in
Seigo Nonaka
2013/03/11 03:40:27
Done.
| |
| 288 base::Bind(&base::DoNothing)); | |
| 289 is_started_ = true; | |
| 290 FOR_EACH_OBSERVER(Observer, observers_, OnConnected()); | |
| 291 return true; | |
| 292 } | |
| 293 virtual bool Stop() OVERRIDE { | |
| 294 if (!is_started_) | |
| 295 return false; | |
| 296 is_started_ = false; | |
| 297 FOR_EACH_OBSERVER(Observer, observers_, OnDisconnected()); | |
| 298 return true; | |
| 299 } | |
| 277 | 300 |
| 278 private: | 301 private: |
| 279 DISALLOW_COPY_AND_ASSIGN(IBusDaemonControllerStubImpl); | 302 ObserverList<Observer> observers_; |
| 303 bool is_started_; | |
| 304 DISALLOW_COPY_AND_ASSIGN(IBusDaemonControllerDaemonlessImpl); | |
| 280 }; | 305 }; |
| 281 | 306 |
| 282 } // namespace | 307 } // namespace |
| 283 | 308 |
| 284 /////////////////////////////////////////////////////////////////////////////// | 309 /////////////////////////////////////////////////////////////////////////////// |
| 285 // IBusDaemonController | 310 // IBusDaemonController |
| 286 | 311 |
| 287 IBusDaemonController::IBusDaemonController() { | 312 IBusDaemonController::IBusDaemonController() { |
| 288 } | 313 } |
| 289 | 314 |
| 290 IBusDaemonController::~IBusDaemonController() { | 315 IBusDaemonController::~IBusDaemonController() { |
| 291 } | 316 } |
| 292 | 317 |
| 293 // static | 318 // static |
| 294 void IBusDaemonController::Initialize( | 319 void IBusDaemonController::Initialize( |
| 295 const scoped_refptr<base::SequencedTaskRunner>& ui_task_runner, | 320 const scoped_refptr<base::SequencedTaskRunner>& ui_task_runner, |
| 296 const scoped_refptr<base::SequencedTaskRunner>& file_task_runner) { | 321 const scoped_refptr<base::SequencedTaskRunner>& file_task_runner) { |
| 297 DCHECK(g_ibus_daemon_controller == NULL) | 322 DCHECK(g_ibus_daemon_controller == NULL) |
| 298 << "Do not call Initialize function multiple times."; | 323 << "Do not call Initialize function multiple times."; |
| 299 if (base::chromeos::IsRunningOnChromeOS()) { | 324 if (base::chromeos::IsRunningOnChromeOS()) { |
| 300 g_ibus_daemon_controller = new IBusDaemonControllerImpl(ui_task_runner, | 325 g_ibus_daemon_controller = new IBusDaemonControllerImpl(ui_task_runner, |
| 301 file_task_runner); | 326 file_task_runner); |
| 302 } else { | 327 } else { |
| 303 g_ibus_daemon_controller = new IBusDaemonControllerStubImpl(); | 328 g_ibus_daemon_controller = new IBusDaemonControllerDaemonlessImpl(); |
| 304 } | 329 } |
| 305 } | 330 } |
| 306 | 331 |
| 307 // static | 332 // static |
| 308 void IBusDaemonController::InitializeForTesting( | 333 void IBusDaemonController::InitializeForTesting( |
| 309 IBusDaemonController* controller_) { | 334 IBusDaemonController* controller_) { |
| 310 DCHECK(g_ibus_daemon_controller == NULL); | 335 DCHECK(g_ibus_daemon_controller == NULL); |
| 311 DCHECK(controller_); | 336 DCHECK(controller_); |
| 312 g_ibus_daemon_controller = controller_; | 337 g_ibus_daemon_controller = controller_; |
| 313 } | 338 } |
| 314 | 339 |
| 315 // static | 340 // static |
| 316 void IBusDaemonController::Shutdown() { | 341 void IBusDaemonController::Shutdown() { |
| 317 delete g_ibus_daemon_controller; | 342 delete g_ibus_daemon_controller; |
| 318 g_ibus_daemon_controller = NULL; | 343 g_ibus_daemon_controller = NULL; |
| 319 } | 344 } |
| 320 | 345 |
| 321 // static | 346 // static |
| 322 IBusDaemonController* IBusDaemonController::GetInstance() { | 347 IBusDaemonController* IBusDaemonController::GetInstance() { |
| 323 return g_ibus_daemon_controller; | 348 return g_ibus_daemon_controller; |
| 324 } | 349 } |
| 325 | 350 |
| 326 } // namespace chromeos | 351 } // namespace chromeos |
| OLD | NEW |