shill: Add a ModemInfo object that's a peer of DeviceInfo.

ModemInfo is responsible for managing ModemManager instances. Each ModemManager
instance watches for and handles an individual ModemManager DBus service. Each
ModemManager will be responsible for creating cellular devices associated with
that ModemManager.

BUG=chromium-os:17576
TEST=unit tests, tested on device

Change-Id: Ie9946cba4465aea8671305e32596fc9f6cca96e2
Reviewed-on: http://gerrit.chromium.org/gerrit/4124
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
diff --git a/manager.h b/manager.h
index e8a7dcb..85eb9c0 100644
--- a/manager.h
+++ b/manager.h
@@ -14,7 +14,7 @@
 
 #include "shill/device.h"
 #include "shill/device_info.h"
-#include "shill/glib.h"
+#include "shill/modem_info.h"
 #include "shill/property_store.h"
 #include "shill/service.h"
 #include "shill/shill_event.h"
@@ -25,6 +25,7 @@
 class Error;
 class EventDispatcher;
 class ManagerAdaptorInterface;
+class GLib;
 
 class Manager {
  public:
@@ -39,7 +40,8 @@
 
   // A constructor for the Manager object
   Manager(ControlInterface *control_interface,
-          EventDispatcher *dispatcher);
+          EventDispatcher *dispatcher,
+          GLib *glib);
   virtual ~Manager();
   void Start();
   void Stop();
@@ -79,9 +81,9 @@
                                   Strings(Manager::*get)(void),
                                   bool(Manager::*set)(const Strings&));
 
-  GLib glib_;
   scoped_ptr<ManagerAdaptorInterface> adaptor_;
   DeviceInfo device_info_;
+  ModemInfo modem_info_;
   bool running_;
   std::vector<DeviceRefPtr> devices_;
   std::vector<ServiceRefPtr> services_;