| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/nfc_device_client.h" | 5 #include "chromeos/dbus/nfc_device_client.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/weak_ptr.h" | 8 #include "base/memory/weak_ptr.h" |
| 9 #include "base/observer_list.h" | 9 #include "base/observer_list.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| 11 #include "chromeos/dbus/nfc_adapter_client.h" | 11 #include "chromeos/dbus/nfc_adapter_client.h" |
| 12 #include "dbus/bus.h" | 12 #include "dbus/bus.h" |
| 13 #include "dbus/message.h" | 13 #include "dbus/message.h" |
| 14 #include "dbus/values_util.h" |
| 14 #include "third_party/cros_system_api/dbus/service_constants.h" | 15 #include "third_party/cros_system_api/dbus/service_constants.h" |
| 15 | 16 |
| 16 using chromeos::nfc_client_helpers::DBusObjectMap; | 17 using chromeos::nfc_client_helpers::DBusObjectMap; |
| 17 using chromeos::nfc_client_helpers::ObjectProxyTree; | 18 using chromeos::nfc_client_helpers::ObjectProxyTree; |
| 18 | 19 |
| 19 namespace chromeos { | 20 namespace chromeos { |
| 20 | 21 |
| 21 NfcDeviceClient::Properties::Properties( | 22 NfcDeviceClient::Properties::Properties( |
| 22 dbus::ObjectProxy* object_proxy, | 23 dbus::ObjectProxy* object_proxy, |
| 23 const PropertyChangedCallback& callback) | 24 const PropertyChangedCallback& callback) |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 "Cannot push data to device with empty arguments."; | 102 "Cannot push data to device with empty arguments."; |
| 102 LOG(ERROR) << error_message; | 103 LOG(ERROR) << error_message; |
| 103 error_callback.Run(nfc_error::kInvalidArguments, error_message); | 104 error_callback.Run(nfc_error::kInvalidArguments, error_message); |
| 104 return; | 105 return; |
| 105 } | 106 } |
| 106 | 107 |
| 107 // Create the arguments. | 108 // Create the arguments. |
| 108 dbus::MethodCall method_call(nfc_device::kNfcDeviceInterface, | 109 dbus::MethodCall method_call(nfc_device::kNfcDeviceInterface, |
| 109 nfc_device::kPush); | 110 nfc_device::kPush); |
| 110 dbus::MessageWriter writer(&method_call); | 111 dbus::MessageWriter writer(&method_call); |
| 111 dbus::MessageWriter array_writer(NULL); | 112 dbus::AppendValueData(&writer, attributes); |
| 112 dbus::MessageWriter dict_entry_writer(NULL); | |
| 113 writer.OpenArray("{sv}", &array_writer); | |
| 114 for (base::DictionaryValue::Iterator iter(attributes); | |
| 115 !iter.IsAtEnd(); iter.Advance()) { | |
| 116 array_writer.OpenDictEntry(&dict_entry_writer); | |
| 117 dict_entry_writer.AppendString(iter.key()); | |
| 118 nfc_client_helpers::AppendValueDataAsVariant(&dict_entry_writer, | |
| 119 iter.value()); | |
| 120 array_writer.CloseContainer(&dict_entry_writer); | |
| 121 } | |
| 122 writer.CloseContainer(&array_writer); | |
| 123 | 113 |
| 124 object_proxy->CallMethodWithErrorCallback( | 114 object_proxy->CallMethodWithErrorCallback( |
| 125 &method_call, | 115 &method_call, |
| 126 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, | 116 dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| 127 base::Bind(&nfc_client_helpers::OnSuccess, callback), | 117 base::Bind(&nfc_client_helpers::OnSuccess, callback), |
| 128 base::Bind(&nfc_client_helpers::OnError, error_callback)); | 118 base::Bind(&nfc_client_helpers::OnError, error_callback)); |
| 129 } | 119 } |
| 130 | 120 |
| 131 protected: | 121 protected: |
| 132 // DBusClient override. | 122 // DBusClient override. |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 } | 231 } |
| 242 | 232 |
| 243 NfcDeviceClient::~NfcDeviceClient() { | 233 NfcDeviceClient::~NfcDeviceClient() { |
| 244 } | 234 } |
| 245 | 235 |
| 246 NfcDeviceClient* NfcDeviceClient::Create(NfcAdapterClient* adapter_client) { | 236 NfcDeviceClient* NfcDeviceClient::Create(NfcAdapterClient* adapter_client) { |
| 247 return new NfcDeviceClientImpl(adapter_client); | 237 return new NfcDeviceClientImpl(adapter_client); |
| 248 } | 238 } |
| 249 | 239 |
| 250 } // namespace chromeos | 240 } // namespace chromeos |
| OLD | NEW |