shill: Transition Cellular's state to Registered when the modem is registered.

Also, process GSM network technology types and roaming states and update the
Cellular service appropriately.

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

Change-Id: I6606a01a07cf635cb344aef95c3145eaf2290fba
Reviewed-on: http://gerrit.chromium.org/gerrit/6768
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
diff --git a/modem_gsm_network_proxy_interface.h b/modem_gsm_network_proxy_interface.h
index 414042f..a461d46 100644
--- a/modem_gsm_network_proxy_interface.h
+++ b/modem_gsm_network_proxy_interface.h
@@ -8,6 +8,7 @@
 #include <string>
 
 #include <base/basictypes.h>
+#include <dbus-c++/types.h>
 
 namespace shill {
 
@@ -15,9 +16,15 @@
 // support. The interface is provided so that it can be mocked in tests.
 class ModemGSMNetworkProxyInterface {
  public:
+  typedef DBus::Struct<uint32, std::string, std::string> RegistrationInfo;
+
   virtual ~ModemGSMNetworkProxyInterface() {}
 
   virtual void Register(const std::string &network_id) = 0;
+  virtual RegistrationInfo GetRegistrationInfo() = 0;
+
+  // Properties.
+  virtual uint32 AccessTechnology() = 0;
 };
 
 // ModemManager.Modem.Gsm.Network signal listener to be associated with the