shill: Create an APN list for the home GSM provider and broadcast it.

BUG=chromium-os:23201
TEST=unit tests

Change-Id: I7eda725099cb83d118099af75530f776f9f73d7d
Reviewed-on: https://gerrit.chromium.org/gerrit/11981
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Eric Shienbrood <ers@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/cellular_capability_gsm.h b/cellular_capability_gsm.h
index 470730a..45e9fb4 100644
--- a/cellular_capability_gsm.h
+++ b/cellular_capability_gsm.h
@@ -64,6 +64,7 @@
 
  private:
   friend class CellularCapabilityGSMTest;
+  FRIEND_TEST(CellularCapabilityGSMTest, InitAPNList);
   FRIEND_TEST(CellularCapabilityGSMTest, ParseScanResult);
   FRIEND_TEST(CellularCapabilityGSMTest, ParseScanResultProviderLookup);
   FRIEND_TEST(CellularCapabilityGSMTest, RegisterOnNetwork);
@@ -111,6 +112,9 @@
   // Updates the serving operator on the active service.
   void UpdateServingOperator();
 
+  // Initializes the |apn_list_| property based on the current |home_provider_|.
+  void InitAPNList();
+
   Stringmap ParseScanResult(
       const ModemGSMNetworkProxyInterface::ScanResult &result);
 
@@ -145,6 +149,7 @@
   bool scanning_;
   uint16 scan_interval_;
   SimLockStatus sim_lock_status_;
+  Stringmaps apn_list_;
 
   DISALLOW_COPY_AND_ASSIGN(CellularCapabilityGSM);
 };