shill: Update WiMAX DBus proxy interfaces and classes.

Adds WiMaxManager.Network proxy. Creates WiMaxService objects based on
the available WiMax networks thus adding initial support for multiple
active WiMAX services. Adds a "Scanning" property to the WiMax device,
similar to WiFi and Cellular.

BUG=chrome-os-partner:9782
TEST=Build and run unit tests.
CQ-DEPEND=I97ce1351436afb3aeac0d2a48a8f51e1501e7466

Change-Id: Ie3f919846114f63414788c5b970fa0dff2e2d06a
Reviewed-on: https://gerrit.chromium.org/gerrit/23008
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
diff --git a/wimax_device_proxy.h b/wimax_device_proxy.h
index 43baae7..8977ee0 100644
--- a/wimax_device_proxy.h
+++ b/wimax_device_proxy.h
@@ -26,12 +26,17 @@
   virtual void Disable(Error *error,
                        const ResultCallback &callback,
                        int timeout);
+  virtual void ScanNetworks(Error *error,
+                            const ResultCallback &callback,
+                            int timeout);
   virtual void Connect(Error *error,
                        const ResultCallback &callback,
                        int timeout);
   virtual void Disconnect(Error *error,
                           const ResultCallback &callback,
                           int timeout);
+  virtual void set_networks_changed_callback(
+      const NetworksChangedCallback &callback);
   virtual uint8 Index(Error *error);
   virtual std::string Name(Error *error);
 
@@ -39,22 +44,26 @@
   class Proxy : public org::chromium::WiMaxManager::Device_proxy,
                 public DBus::ObjectProxy {
    public:
-    Proxy(DBus::Connection *connection,
-          const DBus::Path &path);
+    Proxy(DBus::Connection *connection, const DBus::Path &path);
     virtual ~Proxy();
 
+    void set_networks_changed_callback(const NetworksChangedCallback &callback);
+
    private:
     // Signal callbacks inherited from WiMaxManager::Device_proxy.
-    // [None]
+    virtual void NetworksChanged(const std::vector<DBus::Path> &networks);
 
     // Method callbacks inherited from WiMaxManager::Device_proxy.
     virtual void EnableCallback(const DBus::Error &error, void *data);
     virtual void DisableCallback(const DBus::Error &error, void *data);
+    virtual void ScanNetworksCallback(const DBus::Error &error, void *data);
     virtual void ConnectCallback(const DBus::Error &error, void *data);
     virtual void DisconnectCallback(const DBus::Error &error, void *data);
 
     static void HandleCallback(const DBus::Error &error, void *data);
 
+    NetworksChangedCallback networks_changed_callback_;
+
     DISALLOW_COPY_AND_ASSIGN(Proxy);
   };