shill: wimax: Start a WiMaxProvider class.

The class is a peer of DeviceInfo/ModemInfo/VPNProvider in the
Manager. It communicates with the WiMaxManager RPC service. It will
instantiate WiMax device objects that will communicate with
WiMaxManager.Device RPC objects.

BUG=chrome-os-partner:9700
TEST=unit tests

Change-Id: I003f0ff3e67ee527137fb11f56a6e57d9c2589bf
Reviewed-on: https://gerrit.chromium.org/gerrit/22700
Commit-Ready: Darin Petkov <petkov@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
diff --git a/wimax.h b/wimax.h
index 8fe2d6c..d015830 100644
--- a/wimax.h
+++ b/wimax.h
@@ -5,10 +5,15 @@
 #ifndef SHILL_WIMAX_H_
 #define SHILL_WIMAX_H_
 
+#include <gtest/gtest_prod.h>  // for FRIEND_TEST
+
 #include "shill/device.h"
 
 namespace shill {
 
+class ProxyFactory;
+class WiMaxDeviceProxyInterface;
+
 class WiMax : public Device {
  public:
   WiMax(ControlInterface *control,
@@ -16,7 +21,8 @@
         Metrics *metrics,
         Manager *manager,
         const std::string &link_name,
-        int interface_index);
+        int interface_index,
+        const RpcIdentifier &path);
 
   virtual ~WiMax();
 
@@ -28,7 +34,18 @@
   virtual void Connect(Error *error);
   virtual void Disconnect(Error *error);
 
+  const RpcIdentifier &path() const { return path_; }
+
  private:
+  friend class WiMaxTest;
+  FRIEND_TEST(WiMaxTest, StartStop);
+
+  const RpcIdentifier path_;
+
+  scoped_ptr<WiMaxDeviceProxyInterface> proxy_;
+
+  ProxyFactory *proxy_factory_;
+
   DISALLOW_COPY_AND_ASSIGN(WiMax);
 };