Index: chromeos/ime/ibus_daemon_controller.cc |
diff --git a/chromeos/ime/ibus_daemon_controller.cc b/chromeos/ime/ibus_daemon_controller.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..620e5991e32c46b743966ac2c774307a63be9a57 |
--- /dev/null |
+++ b/chromeos/ime/ibus_daemon_controller.cc |
@@ -0,0 +1,96 @@ |
+// Copyright (c) 2012 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/ime/ibus_daemon_controller.h" |
+ |
+#include "base/chromeos/chromeos_version.h" |
+ |
+namespace chromeos { |
+ |
+namespace { |
+ |
+IBusDaemonController* g_ibus_daemon_controller = NULL; |
+ |
+// The implementation of IBusDaemonController. |
+class IBusDaemonControllerImpl : public IBusDaemonController { |
satorux1
2013/01/22 07:06:01
This class should be used from a single thread, ri
Seigo Nonaka
2013/01/22 10:53:48
Right, use NonThreadSafe for thread checking.
On 2
satorux1
2013/01/22 17:09:52
I'd suggest to use ThreadChecker. non_thread_safe.
Seigo Nonaka
2013/01/23 08:06:08
Sorry I missed NonThreadSafe comment.
Updated patc
|
+ public: |
+ IBusDaemonControllerImpl() {} |
+ |
+ ~IBusDaemonControllerImpl() {} |
+ |
+ // IBusDaemonController override: |
+ void Initialize( |
+ const scoped_refptr<base::SequencedTaskRunner>& ui_task_runner, |
+ const scoped_refptr<base::SequencedTaskRunner>& file_task_runner) { |
+ // TODO(nona): Implement this. |
+ } |
+ |
+ // IBusDaemonController override: |
+ void AddObserver(Observer* observer) { |
+ // TODO(nona): Implement this. |
+ } |
+ |
+ // IBusDaemonController override: |
+ void RemoveObserver(Observer* observer) { |
+ // TODO(nona): Implement this. |
+ } |
+ |
+ // IBusDaemonController override: |
+ bool Start() OVERRIDE { |
+ // TODO(nona): Implement this. |
+ return true; |
+ } |
+ |
+ // IBusDaemonController override: |
+ bool Stop() OVERRIDE { |
+ // TODO(nona): Implement this. |
+ return true; |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(IBusDaemonControllerImpl); |
+}; |
+ |
+// The stub implementation of IBusDaemonController. |
+class IBusDaemonControllerStubImpl : public IBusDaemonController { |
+ public: |
+ IBusDaemonControllerStubImpl() {} |
+ virtual ~IBusDaemonControllerStubImpl() {} |
+ |
+ // IBusDaemonController overrides: |
+ void Initialize( |
+ const scoped_refptr<base::SequencedTaskRunner>& ui_runner, |
+ const scoped_refptr<base::SequencedTaskRunner>& file_runner) OVERRIDE {} |
+ virtual void AddObserver(Observer* observer) OVERRIDE {} |
+ virtual void RemoveObserver(Observer* observer) OVERRIDE {} |
+ virtual bool Start() OVERRIDE { return true; } |
+ virtual bool Stop() OVERRIDE { return true; } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(IBusDaemonControllerStubImpl); |
+}; |
+ |
+} // namespace |
+ |
+/////////////////////////////////////////////////////////////////////////////// |
+// IBusDaemonController |
+ |
+IBusDaemonController::IBusDaemonController() { |
+} |
+ |
+IBusDaemonController::~IBusDaemonController() { |
+} |
+ |
+IBusDaemonController* IBusDaemonController::GetInstance() { |
+ if (!g_ibus_daemon_controller) { |
+ if (base::chromeos::IsRunningOnChromeOS()) { |
+ g_ibus_daemon_controller = new IBusDaemonControllerImpl(); |
+ } else { |
+ g_ibus_daemon_controller = new IBusDaemonControllerStubImpl(); |
+ } |
+ } |
+ return g_ibus_daemon_controller; |
+} |
+ |
+} // namespace chromeos |