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

Side by Side Diff: chromeos/dbus/shill_device_client.cc

Issue 10949030: This converts the Shill clients to allow propagation of shill errors (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix bad merge Created 8 years, 2 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
« no previous file with comments | « chromeos/dbus/shill_device_client.h ('k') | chromeos/dbus/shill_device_client_unittest.cc » ('j') | 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/dbus/shill_device_client.h" 5 #include "chromeos/dbus/shill_device_client.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 virtual void ProposeScan(const dbus::ObjectPath& device_path, 60 virtual void ProposeScan(const dbus::ObjectPath& device_path,
61 const VoidDBusMethodCallback& callback) OVERRIDE { 61 const VoidDBusMethodCallback& callback) OVERRIDE {
62 dbus::MethodCall method_call(flimflam::kFlimflamDeviceInterface, 62 dbus::MethodCall method_call(flimflam::kFlimflamDeviceInterface,
63 flimflam::kProposeScanFunction); 63 flimflam::kProposeScanFunction);
64 GetHelper(device_path)->CallVoidMethod(&method_call, callback); 64 GetHelper(device_path)->CallVoidMethod(&method_call, callback);
65 } 65 }
66 66
67 virtual void SetProperty(const dbus::ObjectPath& device_path, 67 virtual void SetProperty(const dbus::ObjectPath& device_path,
68 const std::string& name, 68 const std::string& name,
69 const base::Value& value, 69 const base::Value& value,
70 const VoidDBusMethodCallback& callback) OVERRIDE { 70 const base::Closure& callback,
71 const ErrorCallback& error_callback) OVERRIDE {
71 dbus::MethodCall method_call(flimflam::kFlimflamDeviceInterface, 72 dbus::MethodCall method_call(flimflam::kFlimflamDeviceInterface,
72 flimflam::kSetPropertyFunction); 73 flimflam::kSetPropertyFunction);
73 dbus::MessageWriter writer(&method_call); 74 dbus::MessageWriter writer(&method_call);
74 writer.AppendString(name); 75 writer.AppendString(name);
75 ShillClientHelper::AppendValueDataAsVariant(&writer, value); 76 ShillClientHelper::AppendValueDataAsVariant(&writer, value);
76 GetHelper(device_path)->CallVoidMethod(&method_call, callback); 77 GetHelper(device_path)->CallVoidMethodWithErrorCallback(&method_call,
78 callback,
79 error_callback);
77 } 80 }
78 81
79 virtual void ClearProperty(const dbus::ObjectPath& device_path, 82 virtual void ClearProperty(const dbus::ObjectPath& device_path,
80 const std::string& name, 83 const std::string& name,
81 const VoidDBusMethodCallback& callback) OVERRIDE { 84 const VoidDBusMethodCallback& callback) OVERRIDE {
82 dbus::MethodCall method_call(flimflam::kFlimflamDeviceInterface, 85 dbus::MethodCall method_call(flimflam::kFlimflamDeviceInterface,
83 flimflam::kClearPropertyFunction); 86 flimflam::kClearPropertyFunction);
84 dbus::MessageWriter writer(&method_call); 87 dbus::MessageWriter writer(&method_call);
85 writer.AppendString(name); 88 writer.AppendString(name);
86 GetHelper(device_path)->CallVoidMethod(&method_call, callback); 89 GetHelper(device_path)->CallVoidMethod(&method_call, callback);
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 } 277 }
275 278
276 virtual void ProposeScan(const dbus::ObjectPath& device_path, 279 virtual void ProposeScan(const dbus::ObjectPath& device_path,
277 const VoidDBusMethodCallback& callback) OVERRIDE { 280 const VoidDBusMethodCallback& callback) OVERRIDE {
278 PostVoidCallback(callback, DBUS_METHOD_CALL_SUCCESS); 281 PostVoidCallback(callback, DBUS_METHOD_CALL_SUCCESS);
279 } 282 }
280 283
281 virtual void SetProperty(const dbus::ObjectPath& device_path, 284 virtual void SetProperty(const dbus::ObjectPath& device_path,
282 const std::string& name, 285 const std::string& name,
283 const base::Value& value, 286 const base::Value& value,
284 const VoidDBusMethodCallback& callback) OVERRIDE { 287 const base::Closure& callback,
288 const ErrorCallback& error_callback) OVERRIDE {
285 base::DictionaryValue* device_properties = NULL; 289 base::DictionaryValue* device_properties = NULL;
286 if (!stub_devices_.GetDictionary(device_path.value(), &device_properties)) { 290 if (!stub_devices_.GetDictionary(device_path.value(), &device_properties)) {
287 PostVoidCallback(callback, DBUS_METHOD_CALL_FAILURE); 291 std::string error_name("org.chromium.flimflam.Error.Failure");
292 std::string error_message("Failed");
293 MessageLoop::current()->PostTask(FROM_HERE,
294 base::Bind(error_callback,
295 error_name,
296 error_message));
288 return; 297 return;
289 } 298 }
290 device_properties->Set(name, value.DeepCopy()); 299 device_properties->Set(name, value.DeepCopy());
291 PostVoidCallback(callback, DBUS_METHOD_CALL_SUCCESS); 300 MessageLoop::current()->PostTask(FROM_HERE, callback);
292 } 301 }
293 302
294 virtual void ClearProperty(const dbus::ObjectPath& device_path, 303 virtual void ClearProperty(const dbus::ObjectPath& device_path,
295 const std::string& name, 304 const std::string& name,
296 const VoidDBusMethodCallback& callback) OVERRIDE { 305 const VoidDBusMethodCallback& callback) OVERRIDE {
297 base::DictionaryValue* device_properties = NULL; 306 base::DictionaryValue* device_properties = NULL;
298 if (!stub_devices_.GetDictionary(device_path.value(), &device_properties)) { 307 if (!stub_devices_.GetDictionary(device_path.value(), &device_properties)) {
299 PostVoidCallback(callback, DBUS_METHOD_CALL_FAILURE); 308 PostVoidCallback(callback, DBUS_METHOD_CALL_FAILURE);
300 return; 309 return;
301 } 310 }
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 ShillDeviceClient* ShillDeviceClient::Create( 413 ShillDeviceClient* ShillDeviceClient::Create(
405 DBusClientImplementationType type, 414 DBusClientImplementationType type,
406 dbus::Bus* bus) { 415 dbus::Bus* bus) {
407 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) 416 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION)
408 return new ShillDeviceClientImpl(bus); 417 return new ShillDeviceClientImpl(bus);
409 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); 418 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type);
410 return new ShillDeviceClientStubImpl(); 419 return new ShillDeviceClientStubImpl();
411 } 420 }
412 421
413 } // namespace chromeos 422 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/shill_device_client.h ('k') | chromeos/dbus/shill_device_client_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698