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

Side by Side Diff: chromeos/network/network_state_handler.cc

Issue 15233002: Add NetworkStateHandler::RequestUpdateForNetwork (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 7 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 | Annotate | Revision Log
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/network/network_state_handler.h" 5 #include "chromeos/network/network_state_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/format_macros.h" 8 #include "base/format_macros.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 RequestScan(); 303 RequestScan();
304 } 304 }
305 305
306 void NetworkStateHandler::ConnectToBestWifiNetwork() { 306 void NetworkStateHandler::ConnectToBestWifiNetwork() {
307 network_event_log::AddEntry(kLogModule, "ConnectToBestWifiNetwork", ""); 307 network_event_log::AddEntry(kLogModule, "ConnectToBestWifiNetwork", "");
308 WaitForScan(flimflam::kTypeWifi, 308 WaitForScan(flimflam::kTypeWifi,
309 base::Bind(&internal::ShillPropertyHandler::ConnectToBestServices, 309 base::Bind(&internal::ShillPropertyHandler::ConnectToBestServices,
310 shill_property_handler_->AsWeakPtr())); 310 shill_property_handler_->AsWeakPtr()));
311 } 311 }
312 312
313 bool NetworkStateHandler::RequestUpdateForNetwork(
314 const std::string& service_path) {
315 NetworkState* network = GetModifiableNetworkState(service_path);
316 if (!network)
317 return false; // Only request an update for known networks.
318 network->set_update_requested(true);
319 network_event_log::AddEntry(kLogModule, "RequestUpdate", service_path);
320 shill_property_handler_->RequestProperties(
321 ManagedState::MANAGED_TYPE_NETWORK, service_path);
322 return true;
323 }
324
325 void NetworkStateHandler::RequestUpdateForAllNetworks() {
326 network_event_log::AddEntry(kLogModule, "RequestUpdateForAllNetworks", "");
327 for (ManagedStateList::iterator iter = network_list_.begin();
328 iter != network_list_.end(); ++iter) {
329 ManagedState* network = *iter;
330 network->set_update_requested(true);
331 shill_property_handler_->RequestProperties(
332 ManagedState::MANAGED_TYPE_NETWORK, network->path());
333 }
334 }
335
313 void NetworkStateHandler::SetConnectingNetwork( 336 void NetworkStateHandler::SetConnectingNetwork(
314 const std::string& service_path) { 337 const std::string& service_path) {
315 connecting_network_ = service_path; 338 connecting_network_ = service_path;
316 network_event_log::AddEntry( 339 network_event_log::AddEntry(
317 kLogModule, "SetConnectingNetwork", service_path); 340 kLogModule, "SetConnectingNetwork", service_path);
318 } 341 }
319 342
320 void NetworkStateHandler::GetNetworkStatePropertiesForTest( 343 void NetworkStateHandler::GetNetworkStatePropertiesForTest(
321 base::DictionaryValue* dictionary) const { 344 base::DictionaryValue* dictionary) const {
322 for (ManagedStateList::const_iterator iter = network_list_.begin(); 345 for (ManagedStateList::const_iterator iter = network_list_.begin();
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 network_property_updated = true; 427 network_property_updated = true;
405 } else { 428 } else {
406 managed->PropertyChanged(iter.key(), iter.value()); 429 managed->PropertyChanged(iter.key(), iter.value());
407 } 430 }
408 } 431 }
409 managed->InitialPropertiesReceived(); 432 managed->InitialPropertiesReceived();
410 network_event_log::AddEntry( 433 network_event_log::AddEntry(
411 kLogModule, "PropertiesReceived", 434 kLogModule, "PropertiesReceived",
412 base::StringPrintf("%s (%s)", path.c_str(), managed->name().c_str())); 435 base::StringPrintf("%s (%s)", path.c_str(), managed->name().c_str()));
413 // Notify observers. 436 // Notify observers.
414 if (network_property_updated) { 437 if (network_property_updated || managed->update_requested()) {
pneubeck (no reviews) 2013/05/22 08:42:40 a comment about your intent (guaranteed notificati
stevenjb 2013/05/22 16:08:23 Good thought, comment added.
415 NetworkState* network = managed->AsNetworkState(); 438 NetworkState* network = managed->AsNetworkState();
416 DCHECK(network); 439 DCHECK(network);
417 // Signal connection state changed after all properties have been updated. 440 // Signal connection state changed after all properties have been updated.
418 if (ConnectionStateChanged(network, prev_connection_state)) 441 if (ConnectionStateChanged(network, prev_connection_state))
419 OnNetworkConnectionStateChanged(network); 442 OnNetworkConnectionStateChanged(network);
420 NetworkPropertiesUpdated(network); 443 NetworkPropertiesUpdated(network);
421 } 444 }
445 managed->set_update_requested(false);
422 } 446 }
423 447
424 void NetworkStateHandler::UpdateNetworkServiceProperty( 448 void NetworkStateHandler::UpdateNetworkServiceProperty(
425 const std::string& service_path, 449 const std::string& service_path,
426 const std::string& key, 450 const std::string& key,
427 const base::Value& value) { 451 const base::Value& value) {
428 NetworkState* network = GetModifiableNetworkState(service_path); 452 NetworkState* network = GetModifiableNetworkState(service_path);
429 if (!network) 453 if (!network)
430 return; 454 return;
431 std::string prev_connection_state = network->connection_state(); 455 std::string prev_connection_state = network->connection_state();
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 } 645 }
622 if (type == kMatchTypeDefault || type == kMatchTypeNonVirtual || 646 if (type == kMatchTypeDefault || type == kMatchTypeNonVirtual ||
623 type == kMatchTypeWireless) { 647 type == kMatchTypeWireless) {
624 NOTREACHED(); 648 NOTREACHED();
625 return flimflam::kTypeWifi; 649 return flimflam::kTypeWifi;
626 } 650 }
627 return type; 651 return type;
628 } 652 }
629 653
630 } // namespace chromeos 654 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698