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

Side by Side Diff: chromeos/ime/ibus_daemon_controller.cc

Issue 12481012: Implement IBusDaemonControllerDaemonlessImpl. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | 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/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
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
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698