| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/shill_manager_client_stub.h" | 5 #include "chromeos/dbus/shill_manager_client_stub.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/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| 11 #include "base/values.h" | 11 #include "base/values.h" |
| 12 #include "chromeos/chromeos_switches.h" | 12 #include "chromeos/chromeos_switches.h" |
| 13 #include "chromeos/dbus/dbus_thread_manager.h" | 13 #include "chromeos/dbus/dbus_thread_manager.h" |
| 14 #include "chromeos/dbus/shill_device_client.h" |
| 14 #include "chromeos/dbus/shill_property_changed_observer.h" | 15 #include "chromeos/dbus/shill_property_changed_observer.h" |
| 15 #include "chromeos/dbus/shill_service_client.h" | 16 #include "chromeos/dbus/shill_service_client.h" |
| 16 #include "dbus/bus.h" | 17 #include "dbus/bus.h" |
| 17 #include "dbus/message.h" | 18 #include "dbus/message.h" |
| 18 #include "dbus/object_path.h" | 19 #include "dbus/object_path.h" |
| 19 #include "dbus/object_proxy.h" | 20 #include "dbus/object_proxy.h" |
| 20 #include "dbus/values_util.h" | 21 #include "dbus/values_util.h" |
| 21 #include "third_party/cros_system_api/dbus/service_constants.h" | 22 #include "third_party/cros_system_api/dbus/service_constants.h" |
| 22 | 23 |
| 23 namespace chromeos { | 24 namespace chromeos { |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 const ErrorCallback& error_callback) { | 88 const ErrorCallback& error_callback) { |
| 88 stub_properties_.SetWithoutPathExpansion(name, value.DeepCopy()); | 89 stub_properties_.SetWithoutPathExpansion(name, value.DeepCopy()); |
| 89 if (callback.is_null()) | 90 if (callback.is_null()) |
| 90 return; | 91 return; |
| 91 MessageLoop::current()->PostTask(FROM_HERE, callback); | 92 MessageLoop::current()->PostTask(FROM_HERE, callback); |
| 92 } | 93 } |
| 93 | 94 |
| 94 void ShillManagerClientStub::RequestScan(const std::string& type, | 95 void ShillManagerClientStub::RequestScan(const std::string& type, |
| 95 const base::Closure& callback, | 96 const base::Closure& callback, |
| 96 const ErrorCallback& error_callback) { | 97 const ErrorCallback& error_callback) { |
| 97 const int kScanDelayMilliseconds = 3000; | 98 // For Stub purposes, default to a Wifi scan. |
| 98 CallNotifyObserversPropertyChanged( | 99 std::string device_type = flimflam::kTypeWifi; |
| 99 flimflam::kServicesProperty, kScanDelayMilliseconds); | 100 if (!type.empty()) |
| 100 if (callback.is_null()) | 101 device_type = type; |
| 101 return; | 102 ShillDeviceClient::TestInterface* device_client = |
| 102 MessageLoop::current()->PostTask(FROM_HERE, callback); | 103 DBusThreadManager::Get()->GetShillDeviceClient()->GetTestInterface(); |
| 104 std::string device_path = device_client->GetDevicePathForType(device_type); |
| 105 if (!device_path.empty()) { |
| 106 device_client->SetDeviceProperty(device_path, |
| 107 flimflam::kScanningProperty, |
| 108 base::FundamentalValue(true)); |
| 109 } |
| 110 const int kScanDurationSeconds = 3; |
| 111 MessageLoop::current()->PostDelayedTask( |
| 112 FROM_HERE, |
| 113 base::Bind(&ShillManagerClientStub::ScanCompleted, |
| 114 weak_ptr_factory_.GetWeakPtr(), device_path, callback), |
| 115 base::TimeDelta::FromSeconds(kScanDurationSeconds)); |
| 103 } | 116 } |
| 104 | 117 |
| 105 void ShillManagerClientStub::EnableTechnology( | 118 void ShillManagerClientStub::EnableTechnology( |
| 106 const std::string& type, | 119 const std::string& type, |
| 107 const base::Closure& callback, | 120 const base::Closure& callback, |
| 108 const ErrorCallback& error_callback) { | 121 const ErrorCallback& error_callback) { |
| 109 base::ListValue* enabled_list = NULL; | 122 base::ListValue* enabled_list = NULL; |
| 110 if (!stub_properties_.GetListWithoutPathExpansion( | 123 if (!stub_properties_.GetListWithoutPathExpansion( |
| 111 flimflam::kEnabledTechnologiesProperty, &enabled_list)) { | 124 flimflam::kEnabledTechnologiesProperty, &enabled_list)) { |
| 112 if (!error_callback.is_null()) { | 125 if (!error_callback.is_null()) { |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 | 318 |
| 306 void ShillManagerClientStub::AddServiceAtIndex(const std::string& service_path, | 319 void ShillManagerClientStub::AddServiceAtIndex(const std::string& service_path, |
| 307 size_t index, | 320 size_t index, |
| 308 bool add_to_watch_list) { | 321 bool add_to_watch_list) { |
| 309 base::StringValue path_value(service_path); | 322 base::StringValue path_value(service_path); |
| 310 base::ListValue* service_list = | 323 base::ListValue* service_list = |
| 311 GetListProperty(flimflam::kServicesProperty); | 324 GetListProperty(flimflam::kServicesProperty); |
| 312 base::ListValue::iterator iter = | 325 base::ListValue::iterator iter = |
| 313 std::find_if(service_list->begin(), service_list->end(), | 326 std::find_if(service_list->begin(), service_list->end(), |
| 314 ValueEquals(&path_value)); | 327 ValueEquals(&path_value)); |
| 315 service_list->Find(path_value); | |
| 316 if (iter != service_list->end()) | 328 if (iter != service_list->end()) |
| 317 service_list->Erase(iter, NULL); | 329 service_list->Erase(iter, NULL); |
| 318 service_list->Insert(index, path_value.DeepCopy()); | 330 service_list->Insert(index, path_value.DeepCopy()); |
| 319 CallNotifyObserversPropertyChanged(flimflam::kServicesProperty, 0); | 331 CallNotifyObserversPropertyChanged(flimflam::kServicesProperty, 0); |
| 320 if (add_to_watch_list) | 332 if (add_to_watch_list) |
| 321 AddServiceToWatchList(service_path); | 333 AddServiceToWatchList(service_path); |
| 322 } | 334 } |
| 323 | 335 |
| 324 void ShillManagerClientStub::RemoveService(const std::string& service_path) { | 336 void ShillManagerClientStub::RemoveService(const std::string& service_path) { |
| 325 base::StringValue service_path_value(service_path); | 337 base::StringValue service_path_value(service_path); |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 500 properties->GetString(flimflam::kNameProperty, &name); | 512 properties->GetString(flimflam::kNameProperty, &name); |
| 501 std::string type; | 513 std::string type; |
| 502 properties->GetString(flimflam::kTypeProperty, &type); | 514 properties->GetString(flimflam::kTypeProperty, &type); |
| 503 if (TechnologyEnabled(type)) | 515 if (TechnologyEnabled(type)) |
| 504 new_service_list->Append((*iter)->DeepCopy()); | 516 new_service_list->Append((*iter)->DeepCopy()); |
| 505 } | 517 } |
| 506 } | 518 } |
| 507 return new_service_list; | 519 return new_service_list; |
| 508 } | 520 } |
| 509 | 521 |
| 522 void ShillManagerClientStub::ScanCompleted(const std::string& device_path, |
| 523 const base::Closure& callback) { |
| 524 if (!device_path.empty()) { |
| 525 DBusThreadManager::Get()->GetShillDeviceClient()->GetTestInterface()-> |
| 526 SetDeviceProperty(device_path, |
| 527 flimflam::kScanningProperty, |
| 528 base::FundamentalValue(false)); |
| 529 } |
| 530 if (!callback.is_null()) |
| 531 MessageLoop::current()->PostTask(FROM_HERE, callback); |
| 532 } |
| 533 |
| 510 } // namespace chromeos | 534 } // namespace chromeos |
| OLD | NEW |