shill: Supply home provider and serving operator for CDMA.

The Cellular::Operator classed is modeled after the Cellular::Network class.

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

Change-Id: I464accd0f54318082c55ed50e879c6e229428d07
Reviewed-on: http://gerrit.chromium.org/gerrit/6402
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
diff --git a/cellular.h b/cellular.h
index 54f1aaa..c3ac21f 100644
--- a/cellular.h
+++ b/cellular.h
@@ -62,6 +62,30 @@
     kModemStateConnected = 90,
   };
 
+  class Operator {
+   public:
+    Operator();
+    ~Operator();
+
+    void CopyFrom(const Operator &oper);
+
+    const std::string &GetName() const;
+    void SetName(const std::string &name);
+
+    const std::string &GetCode() const;
+    void SetCode(const std::string &code);
+
+    const std::string &GetCountry() const;
+    void SetCountry(const std::string &country);
+
+    const Stringmap &ToDict() const;
+
+   private:
+    Stringmap dict_;
+
+    DISALLOW_COPY_AND_ASSIGN(Operator);
+  };
+
   class Network {
    public:
     Network();
@@ -144,6 +168,7 @@
  private:
   FRIEND_TEST(CellularTest, Activate);
   FRIEND_TEST(CellularTest, ActivateError);
+  FRIEND_TEST(CellularTest, CreateService);
   FRIEND_TEST(CellularTest, Connect);
   FRIEND_TEST(CellularTest, GetCDMAActivationStateString);
   FRIEND_TEST(CellularTest, GetCDMAActivationErrorString);
@@ -272,6 +297,7 @@
   uint16 scan_interval_;
   std::vector<Network> found_networks_;
   SimLockStatus sim_lock_status_;
+  Operator home_provider_;
 
   DISALLOW_COPY_AND_ASSIGN(Cellular);
 };