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

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

Issue 14137017: Add TechnologyState to NetworkStateHandler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 8 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
« no previous file with comments | « chromeos/dbus/shill_manager_client_stub.h ('k') | chromeos/network/device_state.h » ('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) 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"
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 if (!stub_properties_.GetListWithoutPathExpansion( 128 if (!stub_properties_.GetListWithoutPathExpansion(
129 flimflam::kEnabledTechnologiesProperty, &enabled_list)) { 129 flimflam::kEnabledTechnologiesProperty, &enabled_list)) {
130 if (!error_callback.is_null()) { 130 if (!error_callback.is_null()) {
131 MessageLoop::current()->PostTask(FROM_HERE, callback); 131 MessageLoop::current()->PostTask(FROM_HERE, callback);
132 MessageLoop::current()->PostTask( 132 MessageLoop::current()->PostTask(
133 FROM_HERE, 133 FROM_HERE,
134 base::Bind(error_callback, "StubError", "Property not found")); 134 base::Bind(error_callback, "StubError", "Property not found"));
135 } 135 }
136 return; 136 return;
137 } 137 }
138 enabled_list->AppendIfNotPresent(new base::StringValue(type)); 138 if (CommandLine::ForCurrentProcess()->HasSwitch(
139 CallNotifyObserversPropertyChanged( 139 chromeos::switches::kEnableStubInteractive)) {
140 flimflam::kEnabledTechnologiesProperty, 0); 140 const int kEnableTechnologyDelaySeconds = 3;
141 if (!callback.is_null()) 141 MessageLoop::current()->PostDelayedTask(
142 MessageLoop::current()->PostTask(FROM_HERE, callback); 142 FROM_HERE,
143 // May affect available services 143 base::Bind(&ShillManagerClientStub::SetTechnologyEnabled,
144 CallNotifyObserversPropertyChanged(flimflam::kServicesProperty, 0); 144 weak_ptr_factory_.GetWeakPtr(), type, callback, true),
145 CallNotifyObserversPropertyChanged(flimflam::kServiceWatchListProperty, 0); 145 base::TimeDelta::FromSeconds(kEnableTechnologyDelaySeconds));
146 } else {
147 SetTechnologyEnabled(type, callback, true);
148 }
146 } 149 }
147 150
148 void ShillManagerClientStub::DisableTechnology( 151 void ShillManagerClientStub::DisableTechnology(
149 const std::string& type, 152 const std::string& type,
150 const base::Closure& callback, 153 const base::Closure& callback,
151 const ErrorCallback& error_callback) { 154 const ErrorCallback& error_callback) {
152 base::ListValue* enabled_list = NULL; 155 base::ListValue* enabled_list = NULL;
153 if (!stub_properties_.GetListWithoutPathExpansion( 156 if (!stub_properties_.GetListWithoutPathExpansion(
154 flimflam::kEnabledTechnologiesProperty, &enabled_list)) { 157 flimflam::kEnabledTechnologiesProperty, &enabled_list)) {
155 if (!error_callback.is_null()) { 158 if (!error_callback.is_null()) {
156 MessageLoop::current()->PostTask( 159 MessageLoop::current()->PostTask(
157 FROM_HERE, 160 FROM_HERE,
158 base::Bind(error_callback, "StubError", "Property not found")); 161 base::Bind(error_callback, "StubError", "Property not found"));
159 } 162 }
160 return; 163 return;
161 } 164 }
162 base::StringValue type_value(type); 165 if (CommandLine::ForCurrentProcess()->HasSwitch(
163 enabled_list->Remove(type_value, NULL); 166 chromeos::switches::kEnableStubInteractive)) {
164 CallNotifyObserversPropertyChanged( 167 const int kDisableTechnologyDelaySeconds = 3;
165 flimflam::kEnabledTechnologiesProperty, 0); 168 MessageLoop::current()->PostDelayedTask(
166 if (!callback.is_null()) 169 FROM_HERE,
167 MessageLoop::current()->PostTask(FROM_HERE, callback); 170 base::Bind(&ShillManagerClientStub::SetTechnologyEnabled,
168 // May affect available services 171 weak_ptr_factory_.GetWeakPtr(), type, callback, false),
169 CallNotifyObserversPropertyChanged(flimflam::kServicesProperty, 0); 172 base::TimeDelta::FromSeconds(kDisableTechnologyDelaySeconds));
170 CallNotifyObserversPropertyChanged(flimflam::kServiceWatchListProperty, 0); 173 } else {
171 } 174 SetTechnologyEnabled(type, callback, false);
175 }
176 }
172 177
173 void ShillManagerClientStub::ConfigureService( 178 void ShillManagerClientStub::ConfigureService(
174 const base::DictionaryValue& properties, 179 const base::DictionaryValue& properties,
175 const ObjectPathCallback& callback, 180 const ObjectPathCallback& callback,
176 const ErrorCallback& error_callback) { 181 const ErrorCallback& error_callback) {
177 if (callback.is_null()) 182 if (callback.is_null())
178 return; 183 return;
179 184
180 // For the purposes of this stub, we're going to assume that the GUID property 185 // For the purposes of this stub, we're going to assume that the GUID property
181 // is set to the service path because we don't want to re-implement Shill's 186 // is set to the service path because we don't want to re-implement Shill's
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 // Don't actually delay unless we're interactive. 446 // Don't actually delay unless we're interactive.
442 if (!CommandLine::ForCurrentProcess()->HasSwitch( 447 if (!CommandLine::ForCurrentProcess()->HasSwitch(
443 chromeos::switches::kEnableStubInteractive)) { 448 chromeos::switches::kEnableStubInteractive)) {
444 delay_ms = 0; 449 delay_ms = 0;
445 } 450 }
446 451
447 // Avoid unnecessary delayed task if we have no observers (e.g. during 452 // Avoid unnecessary delayed task if we have no observers (e.g. during
448 // initial setup). 453 // initial setup).
449 if (observer_list_.size() == 0) 454 if (observer_list_.size() == 0)
450 return; 455 return;
456 if (!CommandLine::ForCurrentProcess()->HasSwitch(
457 chromeos::switches::kEnableStubInteractive)) {
458 delay_ms = 0;
459 }
451 MessageLoop::current()->PostDelayedTask( 460 MessageLoop::current()->PostDelayedTask(
452 FROM_HERE, 461 FROM_HERE,
453 base::Bind(&ShillManagerClientStub::NotifyObserversPropertyChanged, 462 base::Bind(&ShillManagerClientStub::NotifyObserversPropertyChanged,
454 weak_ptr_factory_.GetWeakPtr(), 463 weak_ptr_factory_.GetWeakPtr(),
455 property), 464 property),
456 base::TimeDelta::FromMilliseconds(delay_ms)); 465 base::TimeDelta::FromMilliseconds(delay_ms));
457 } 466 }
458 467
459 void ShillManagerClientStub::NotifyObserversPropertyChanged( 468 void ShillManagerClientStub::NotifyObserversPropertyChanged(
460 const std::string& property) { 469 const std::string& property) {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 const base::ListValue* technologies; 503 const base::ListValue* technologies;
495 if (stub_properties_.GetListWithoutPathExpansion( 504 if (stub_properties_.GetListWithoutPathExpansion(
496 flimflam::kEnabledTechnologiesProperty, &technologies)) { 505 flimflam::kEnabledTechnologiesProperty, &technologies)) {
497 base::StringValue type_value(type); 506 base::StringValue type_value(type);
498 if (technologies->Find(type_value) != technologies->end()) 507 if (technologies->Find(type_value) != technologies->end())
499 enabled = true; 508 enabled = true;
500 } 509 }
501 return enabled; 510 return enabled;
502 } 511 }
503 512
513 void ShillManagerClientStub::SetTechnologyEnabled(
514 const std::string& type,
515 const base::Closure& callback,
516 bool enabled) {
517 base::ListValue* enabled_list = NULL;
518 stub_properties_.GetListWithoutPathExpansion(
519 flimflam::kEnabledTechnologiesProperty, &enabled_list);
520 DCHECK(enabled_list);
521 if (enabled)
522 enabled_list->AppendIfNotPresent(new base::StringValue(type));
523 else
524 enabled_list->Remove(base::StringValue(type), NULL);
525 CallNotifyObserversPropertyChanged(
526 flimflam::kEnabledTechnologiesProperty, 0 /* already delayed */);
527 if (!callback.is_null())
528 MessageLoop::current()->PostTask(FROM_HERE, callback);
529 // May affect available services
530 CallNotifyObserversPropertyChanged(flimflam::kServicesProperty, 0);
531 CallNotifyObserversPropertyChanged(flimflam::kServiceWatchListProperty, 0);
532 }
533
504 base::ListValue* ShillManagerClientStub::GetEnabledServiceList( 534 base::ListValue* ShillManagerClientStub::GetEnabledServiceList(
505 const std::string& property) const { 535 const std::string& property) const {
506 base::ListValue* new_service_list = new base::ListValue; 536 base::ListValue* new_service_list = new base::ListValue;
507 const base::ListValue* service_list; 537 const base::ListValue* service_list;
508 if (stub_properties_.GetListWithoutPathExpansion(property, &service_list)) { 538 if (stub_properties_.GetListWithoutPathExpansion(property, &service_list)) {
509 ShillServiceClient::TestInterface* service_client = 539 ShillServiceClient::TestInterface* service_client =
510 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface(); 540 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface();
511 for (base::ListValue::const_iterator iter = service_list->begin(); 541 for (base::ListValue::const_iterator iter = service_list->begin();
512 iter != service_list->end(); ++iter) { 542 iter != service_list->end(); ++iter) {
513 std::string service_path; 543 std::string service_path;
(...skipping 25 matching lines...) Expand all
539 base::FundamentalValue(false)); 569 base::FundamentalValue(false));
540 } 570 }
541 CallNotifyObserversPropertyChanged(flimflam::kServicesProperty, 0); 571 CallNotifyObserversPropertyChanged(flimflam::kServicesProperty, 0);
542 CallNotifyObserversPropertyChanged(flimflam::kServiceWatchListProperty, 572 CallNotifyObserversPropertyChanged(flimflam::kServiceWatchListProperty,
543 0); 573 0);
544 if (!callback.is_null()) 574 if (!callback.is_null())
545 MessageLoop::current()->PostTask(FROM_HERE, callback); 575 MessageLoop::current()->PostTask(FROM_HERE, callback);
546 } 576 }
547 577
548 } // namespace chromeos 578 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/shill_manager_client_stub.h ('k') | chromeos/network/device_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698