shill: wimax: Support WiMaxService::Unload.
On Unload, deregister and destroy all non-default services. Also, when a default
service is stopped (because its network has disappeared), deregister it from
Manager and destroy it -- this makes StartLiveServices symmetrical to
StopDeadServices.
BUG=chrome-os-partner:9942
TEST=unit tests
Change-Id: Ie9598b21529cbaf7a6b195468cbbd1e10edbe076
Reviewed-on: https://gerrit.chromium.org/gerrit/23649
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/wimax_service.h b/wimax_service.h
index c48c0a5..f50510a 100644
--- a/wimax_service.h
+++ b/wimax_service.h
@@ -52,6 +52,8 @@
const std::string &network_name() const { return network_name_; }
const WiMaxNetworkId &network_id() const { return network_id_; }
void set_network_id(const WiMaxNetworkId &id) { network_id_ = id; }
+ bool is_default() const { return is_default_; }
+ void set_is_default(bool is_default) { is_default_ = is_default; }
static WiMaxNetworkId ConvertIdentifierToNetworkId(uint32 identifier);
@@ -69,8 +71,7 @@
virtual bool Is8021x() const;
virtual void set_eap(const EapCredentials &eap);
virtual bool Save(StoreInterface *storage);
-
- // TODO(petkov): Support Unload (crosbug.com/p/9942).
+ virtual bool Unload();
private:
friend class WiMaxServiceTest;
@@ -92,6 +93,7 @@
WiMaxNetworkId network_id_;
std::string network_name_;
bool need_passphrase_;
+ bool is_default_;
DISALLOW_COPY_AND_ASSIGN(WiMaxService);
};