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/dbus/ibus/ibus_client.h" | 5 #include "chromeos/dbus/ibus/ibus_client.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "chromeos/dbus/ibus/ibus_constants.h" | 9 #include "chromeos/dbus/ibus/ibus_constants.h" |
10 #include "chromeos/dbus/ibus/ibus_component.h" | 10 #include "chromeos/dbus/ibus/ibus_component.h" |
11 #include "dbus/bus.h" | 11 #include "dbus/bus.h" |
12 #include "dbus/message.h" | 12 #include "dbus/message.h" |
13 #include "dbus/object_path.h" | 13 #include "dbus/object_path.h" |
14 #include "dbus/object_proxy.h" | 14 #include "dbus/object_proxy.h" |
15 | 15 |
16 namespace chromeos { | 16 namespace chromeos { |
17 | 17 |
18 namespace { | 18 namespace { |
19 const char kIBusBusRegisterComponentMethod[] = "RegisterComponent"; | |
20 | 19 |
21 // The IBusClient implementation. | 20 // The IBusClient implementation. |
22 class IBusClientImpl : public IBusClient { | 21 class IBusClientImpl : public IBusClient { |
23 public: | 22 public: |
24 explicit IBusClientImpl(dbus::Bus* bus) | 23 explicit IBusClientImpl(dbus::Bus* bus) |
25 : proxy_(bus->GetObjectProxy(kIBusServiceName, | 24 : proxy_(bus->GetObjectProxy(ibus::kServiceName, |
26 dbus::ObjectPath(kIBusServicePath))), | 25 dbus::ObjectPath(ibus::bus::kServicePath))), |
27 weak_ptr_factory_(this) { | 26 weak_ptr_factory_(this) { |
28 } | 27 } |
29 | 28 |
30 virtual ~IBusClientImpl() {} | 29 virtual ~IBusClientImpl() {} |
31 | 30 |
32 // IBusClient override. | 31 // IBusClient override. |
33 virtual void CreateInputContext( | 32 virtual void CreateInputContext( |
34 const std::string& client_name, | 33 const std::string& client_name, |
35 const CreateInputContextCallback& callback, | 34 const CreateInputContextCallback& callback, |
36 const ErrorCallback& error_callback) OVERRIDE { | 35 const ErrorCallback& error_callback) OVERRIDE { |
37 DCHECK(!callback.is_null()); | 36 DCHECK(!callback.is_null()); |
38 DCHECK(!error_callback.is_null()); | 37 DCHECK(!error_callback.is_null()); |
39 dbus::MethodCall method_call(kIBusServiceInterface, | 38 dbus::MethodCall method_call(ibus::bus::kServiceInterface, |
40 kIBusBusCreateInputContextMethod); | 39 ibus::bus::kCreateInputContextMethod); |
41 dbus::MessageWriter writer(&method_call); | 40 dbus::MessageWriter writer(&method_call); |
42 writer.AppendString(client_name); | 41 writer.AppendString(client_name); |
43 proxy_->CallMethodWithErrorCallback( | 42 proxy_->CallMethodWithErrorCallback( |
44 &method_call, | 43 &method_call, |
45 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 44 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
46 base::Bind(&IBusClientImpl::OnCreateInputContext, | 45 base::Bind(&IBusClientImpl::OnCreateInputContext, |
47 weak_ptr_factory_.GetWeakPtr(), | 46 weak_ptr_factory_.GetWeakPtr(), |
48 callback, | 47 callback, |
49 error_callback), | 48 error_callback), |
50 base::Bind(&IBusClientImpl::OnCreateInputContextFail, | 49 base::Bind(&IBusClientImpl::OnCreateInputContextFail, |
51 weak_ptr_factory_.GetWeakPtr(), | 50 weak_ptr_factory_.GetWeakPtr(), |
52 error_callback)); | 51 error_callback)); |
53 } | 52 } |
54 | 53 |
55 // IBusClient override. | 54 // IBusClient override. |
56 virtual void RegisterComponent( | 55 virtual void RegisterComponent( |
57 const ibus::IBusComponent& ibus_component, | 56 const ibus::IBusComponent& ibus_component, |
58 const RegisterComponentCallback& callback, | 57 const RegisterComponentCallback& callback, |
59 const ErrorCallback& error_callback) OVERRIDE { | 58 const ErrorCallback& error_callback) OVERRIDE { |
60 DCHECK(!callback.is_null()); | 59 DCHECK(!callback.is_null()); |
61 DCHECK(!error_callback.is_null()); | 60 DCHECK(!error_callback.is_null()); |
62 dbus::MethodCall method_call(kIBusServiceInterface, | 61 dbus::MethodCall method_call(ibus::bus::kServiceInterface, |
63 kIBusBusRegisterComponentMethod); | 62 ibus::bus::kRegisterComponentMethod); |
64 dbus::MessageWriter writer(&method_call); | 63 dbus::MessageWriter writer(&method_call); |
65 ibus::AppendIBusComponent(ibus_component, &writer); | 64 ibus::AppendIBusComponent(ibus_component, &writer); |
66 proxy_->CallMethodWithErrorCallback( | 65 proxy_->CallMethodWithErrorCallback( |
67 &method_call, | 66 &method_call, |
68 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 67 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
69 base::Bind(&IBusClientImpl::OnRegisterComponent, | 68 base::Bind(&IBusClientImpl::OnRegisterComponent, |
70 weak_ptr_factory_.GetWeakPtr(), | 69 weak_ptr_factory_.GetWeakPtr(), |
71 callback, | 70 callback, |
72 error_callback), | 71 error_callback), |
73 base::Bind(&IBusClientImpl::OnRegisterComponentFail, | 72 base::Bind(&IBusClientImpl::OnRegisterComponentFail, |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 IBusClient* IBusClient::Create(DBusClientImplementationType type, | 158 IBusClient* IBusClient::Create(DBusClientImplementationType type, |
160 dbus::Bus* bus) { | 159 dbus::Bus* bus) { |
161 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) { | 160 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) { |
162 return new IBusClientImpl(bus); | 161 return new IBusClientImpl(bus); |
163 } | 162 } |
164 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); | 163 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); |
165 return new IBusClientStubImpl(); | 164 return new IBusClientStubImpl(); |
166 } | 165 } |
167 | 166 |
168 } // namespace chromeos | 167 } // namespace chromeos |
OLD | NEW |