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/glib.h b/glib.h
index 7016f0a..9bec9c0 100644
--- a/glib.h
+++ b/glib.h
@@ -7,6 +7,7 @@
 
 #include <string>
 
+#include <gio/gio.h>
 #include <glib.h>
 
 namespace shill {
@@ -23,6 +24,16 @@
   virtual guchar *Base64Decode(const gchar *text, gsize *out_len);
   // g_base64_encode
   virtual gchar *Base64Encode(const guchar *data, gsize len);
+  // g_bus_unwatch_name
+  virtual void BusUnwatchName(guint watcher_id);
+  // g_bus_watch_name
+  virtual guint BusWatchName(GBusType bus_type,
+                             const gchar *name,
+                             GBusNameWatcherFlags flags,
+                             GBusNameAppearedCallback name_appeared_handler,
+                             GBusNameVanishedCallback name_vanished_handler,
+                             gpointer user_data,
+                             GDestroyNotify user_data_free_func);
   // g_child_watch_add
   virtual guint ChildWatchAdd(GPid pid,
                               GChildWatchFunc function,
@@ -114,6 +125,8 @@
   virtual void SpawnClosePID(GPid pid);
   // g_strfreev
   virtual void Strfreev(gchar **str_array);
+  // g_type_init
+  virtual void TypeInit();
 };
 
 }  // namespace shill