shill: wimax: Listen to SignalStrengthChanged and update the service strength.

Also, change some instances of DBus::Path to RpcIdentifier.

BUG=chrome-os-partner:9831,chrome-os-partner:9837
TEST=unit tests
CQ-DEPEND=If7c0543cc98bc39fba28e7465bcd6de974d8aa1f

Change-Id: I49fafd5569764d46f5814ac3d19783fe4409a675
Reviewed-on: https://gerrit.chromium.org/gerrit/23115
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/wimax_network_proxy.h b/wimax_network_proxy.h
index d1bccc1..1be7733 100644
--- a/wimax_network_proxy.h
+++ b/wimax_network_proxy.h
@@ -5,6 +5,8 @@
 #ifndef SHILL_WIMAX_NETWORK_PROXY_H_
 #define SHILL_WIMAX_NETWORK_PROXY_H_
 
+#include <base/callback.h>
+
 #include "shill/dbus_bindings/wimax_manager-network.h"
 #include "shill/wimax_network_proxy_interface.h"
 
@@ -18,7 +20,9 @@
   virtual ~WiMaxNetworkProxy();
 
   // Inherited from WiMaxNetwokProxyInterface.
-  virtual DBus::Path proxy_object_path() const;
+  virtual RpcIdentifier path() const;
+  virtual void set_signal_strength_changed_callback(
+      const SignalStrengthChangedCallback &callback);
   virtual uint32 Identifier(Error *error);
   virtual std::string Name(Error *error);
   virtual int Type(Error *error);
@@ -33,13 +37,18 @@
     Proxy(DBus::Connection *connection, const DBus::Path &path);
     virtual ~Proxy();
 
+    void set_signal_strength_changed_callback(
+        const SignalStrengthChangedCallback &callback);
+
    private:
     // Signal callbacks inherited from WiMaxManager::Network_proxy.
-    // [None]
+    virtual void SignalStrengthChanged(const int32 &signal_strength);
 
     // Method callbacks inherited from WiMaxManager::Network_proxy.
     // [None]
 
+    SignalStrengthChangedCallback signal_strength_changed_callback_;
+
     DISALLOW_COPY_AND_ASSIGN(Proxy);
   };