shill: wimax: Add SignalStrength property to WiMaxNetworkProxy.
BUG=chrome-os-partner:9831
TEST=Build and run unit tests.
Change-Id: If17118658dca8cfdfe60e1047adf51db146c5d7f
Reviewed-on: https://gerrit.chromium.org/gerrit/23099
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Ben Chan <benchan@chromium.org>
diff --git a/mock_wimax_network_proxy.h b/mock_wimax_network_proxy.h
index e54a065..d922cf2 100644
--- a/mock_wimax_network_proxy.h
+++ b/mock_wimax_network_proxy.h
@@ -22,6 +22,7 @@
MOCK_METHOD1(Type, int(Error *error));
MOCK_METHOD1(CINR, int(Error *error));
MOCK_METHOD1(RSSI, int(Error *error));
+ MOCK_METHOD1(SignalStrength, int(Error *error));
DISALLOW_COPY_AND_ASSIGN(MockWiMaxNetworkProxy);
};
diff --git a/wimax_network_proxy.cc b/wimax_network_proxy.cc
index 9859d67..c0581be 100644
--- a/wimax_network_proxy.cc
+++ b/wimax_network_proxy.cc
@@ -74,6 +74,16 @@
return 0;
}
+int WiMaxNetworkProxy::SignalStrength(Error *error) {
+ SLOG(DBus, 2) << __func__;
+ try {
+ return proxy_.SignalStrength();
+ } catch (const DBus::Error &e) {
+ FromDBusError(e, error);
+ }
+ return 0;
+}
+
// static
void WiMaxNetworkProxy::FromDBusError(const DBus::Error &dbus_error,
Error *error) {
diff --git a/wimax_network_proxy.h b/wimax_network_proxy.h
index 3902af4..d1bccc1 100644
--- a/wimax_network_proxy.h
+++ b/wimax_network_proxy.h
@@ -24,6 +24,7 @@
virtual int Type(Error *error);
virtual int CINR(Error *error);
virtual int RSSI(Error *error);
+ virtual int SignalStrength(Error *error);
private:
class Proxy : public org::chromium::WiMaxManager::Network_proxy,
diff --git a/wimax_network_proxy_interface.h b/wimax_network_proxy_interface.h
index 4c82e61..3777ba6 100644
--- a/wimax_network_proxy_interface.h
+++ b/wimax_network_proxy_interface.h
@@ -28,6 +28,7 @@
virtual int Type(Error *error) = 0;
virtual int CINR(Error *error) = 0;
virtual int RSSI(Error *error) = 0;
+ virtual int SignalStrength(Error *error) = 0;
};
} // namespace shill
diff --git a/wimax_service.cc b/wimax_service.cc
index b34b5bc..588d5ab 100644
--- a/wimax_service.cc
+++ b/wimax_service.cc
@@ -67,6 +67,12 @@
return false;
}
+ int signal_strength = proxy_->SignalStrength(&error);
+ if (!error.IsSuccess()) {
+ return false;
+ }
+ SetStrength(signal_strength);
+
set_friendly_name(network_name_);
storage_id_ =
StringToLowerASCII(base::StringPrintf("%s_%s_%08x_%s",