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

Unified Diff: chrome/browser/chromeos/cros/network_library_impl_cros.cc

Issue 11367048: This is the first pass at making GetIPConfigs asynchronous. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/cros/network_library_impl_cros.cc
diff --git a/chrome/browser/chromeos/cros/network_library_impl_cros.cc b/chrome/browser/chromeos/cros/network_library_impl_cros.cc
index f3470874111d4e90f48333df484fc6cf89fe4078..c2ebc06325bb8e698b2d61c067f4b0dfc0a2fabf 100644
--- a/chrome/browser/chromeos/cros/network_library_impl_cros.cc
+++ b/chrome/browser/chromeos/cros/network_library_impl_cros.cc
@@ -518,12 +518,51 @@ void NetworkLibraryImplCros::EnableOfflineMode(bool enable) {
offline_mode_ = enable;
}
-NetworkIPConfigVector NetworkLibraryImplCros::GetIPConfigs(
+
+void NetworkLibraryImplCros::GetIPConfigsCallback(
+ const NetworkGetIPConfigsCallback& callback,
+ HardwareAddressFormat format,
+ const NetworkIPConfigVector& ipconfig_vector,
+ const std::string& hardware_address) {
+ std::string hardware_address_tmp = hardware_address;
+ for (size_t i = 0; i < hardware_address_tmp.size(); ++i)
+ hardware_address_tmp[i] = toupper(hardware_address_tmp[i]);
+ if (format == FORMAT_COLON_SEPARATED_HEX) {
+ if (hardware_address_tmp.size() % 2 == 0) {
+ std::string output;
+ for (size_t i = 0; i < hardware_address_tmp.size(); ++i) {
+ if ((i != 0) && (i % 2 == 0))
+ output.push_back(':');
+ output.push_back(hardware_address_tmp[i]);
+ }
+ hardware_address_tmp.swap(output);
+ }
+ } else {
+ DCHECK_EQ(format, FORMAT_RAW_HEX);
+ }
+ callback.Run(ipconfig_vector, hardware_address_tmp);
+}
+
+void NetworkLibraryImplCros::GetIPConfigs(
+ const std::string& device_path,
+ HardwareAddressFormat format,
+ const NetworkGetIPConfigsCallback& callback) {
+ CrosListIPConfigs(device_path,
+ base::Bind(&NetworkLibraryImplCros::GetIPConfigsCallback,
+ weak_ptr_factory_.GetWeakPtr(),
+ callback,
+ format));
+}
+
+NetworkIPConfigVector NetworkLibraryImplCros::GetIPConfigsAndBlock(
const std::string& device_path,
std::string* hardware_address,
HardwareAddressFormat format) {
NetworkIPConfigVector ipconfig_vector;
- CrosListIPConfigs(device_path, &ipconfig_vector, NULL, hardware_address);
+ CrosListIPConfigsAndBlock(device_path,
+ &ipconfig_vector,
+ NULL,
+ hardware_address);
for (size_t i = 0; i < hardware_address->size(); ++i)
(*hardware_address)[i] = toupper((*hardware_address)[i]);
« no previous file with comments | « chrome/browser/chromeos/cros/network_library_impl_cros.h ('k') | chrome/browser/chromeos/cros/network_library_impl_stub.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698