shill: Add support for saving wifi frequency in service object.

BUG=chromium-os:25882
TEST=Unit tests, network_WiFiManager (7/9)

Change-Id: Ia491ef6b240778781470d7ff820e23deb7aa28f0
Reviewed-on: https://gerrit.chromium.org/gerrit/15363
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
diff --git a/wifi_service.cc b/wifi_service.cc
index 6ef3dbb..8ef1722 100644
--- a/wifi_service.cc
+++ b/wifi_service.cc
@@ -55,6 +55,7 @@
       security_(security),
       mode_(mode),
       hidden_ssid_(hidden_ssid),
+      frequency_(0),
       task_factory_(this),
       wifi_(device),
       ssid_(ssid) {
@@ -170,6 +171,7 @@
 void WiFiService::AddEndpoint(WiFiEndpointConstRefPtr endpoint) {
   DCHECK(endpoint->ssid() == ssid());
   endpoints_.insert(endpoint);
+  // TODO: Track signal strength (crosbug.com/16786).
 }
 
 void WiFiService::RemoveEndpoint(WiFiEndpointConstRefPtr endpoint) {
@@ -184,6 +186,16 @@
   endpoints_.erase(i);
 }
 
+void WiFiService::NotifyCurrentEndpoint(const WiFiEndpoint &endpoint) {
+  DCHECK(endpoints_.find(&endpoint) != endpoints_.end());
+  frequency_ = endpoint.frequency();
+  // TODO: Copy BSSID here (crosbug.com/22377).
+  // TODO: Copy signal strength (crosbug.com/16786).
+  // TODO(thieule): Update these values when supplicant signals that they
+  // have changed.
+  // (crosbug.com/16786)
+}
+
 string WiFiService::GetStorageIdentifier() const {
   return storage_identifier_;
 }