[shill] Back property storage in Service objects with Entry objects

Much of Shill Service state is persisted to disk, by creating an Entry
in a Profile.  We should store this info just once, so that we don't
have to worry about keeping multiple data stores in sync.  This is a
first step in that direction.

BUG=chromium-os:17436
TEST=unit tests

Change-Id: If94db2a38a7d79c56e2c746b2f069cfd7ab4bf65
Reviewed-on: http://gerrit.chromium.org/gerrit/3876
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
diff --git a/wifi_service.cc b/wifi_service.cc
index dec3417..ab76b2e 100644
--- a/wifi_service.cc
+++ b/wifi_service.cc
@@ -11,6 +11,7 @@
 
 #include "shill/control_interface.h"
 #include "shill/device.h"
+#include "shill/entry.h"
 #include "shill/shill_event.h"
 #include "shill/wifi.h"
 
@@ -21,27 +22,29 @@
 WiFiService::WiFiService(ControlInterface *control_interface,
                          EventDispatcher *dispatcher,
                          const WiFiRefPtr &device,
+                         const ProfileRefPtr &profile,
+                         const EntryRefPtr &entry,
                          const std::vector<uint8_t> ssid,
                          uint32_t mode,
                          const std::string &key_management,
                          const std::string &name)
-    : Service(control_interface, dispatcher, name),
+    : Service(control_interface, dispatcher, profile, entry, name),
       task_factory_(this),
       wifi_(device),
       ssid_(ssid),
       mode_(mode) {
-  eap_.key_management = key_management;
+  entry_->eap.key_management = key_management;
 
   // TODO(cmasone): Figure out if mode_ should be a string or what
-  // store_.RegisterString(flimflam::kModeProperty, &mode_);
+  // store_.RegisterString(flimflam::kModeProperty, &entry_->mode);
   store_.RegisterString(flimflam::kPassphraseProperty, &passphrase_);
   store_.RegisterBool(flimflam::kPassphraseRequiredProperty, &need_passphrase_);
-  store_.RegisterConstString(flimflam::kSecurityProperty, &security_);
+  store_.RegisterConstString(flimflam::kSecurityProperty, &entry_->security);
   store_.RegisterConstUint8(flimflam::kSignalStrengthProperty, &strength_);
   store_.RegisterConstString(flimflam::kTypeProperty, &type_);
 
   store_.RegisterConstString(flimflam::kWifiAuthMode, &auth_mode_);
-  store_.RegisterConstBool(flimflam::kWifiHiddenSsid, &hidden_ssid_);
+  store_.RegisterConstBool(flimflam::kWifiHiddenSsid, &entry_->hidden_ssid);
   store_.RegisterConstUint16(flimflam::kWifiFrequency, &frequency_);
   store_.RegisterConstUint16(flimflam::kWifiPhyMode, &physical_mode_);
   store_.RegisterConstUint16(flimflam::kWifiHexSsid, &hex_ssid_);
@@ -70,7 +73,7 @@
 }
 
 const std::string &WiFiService::key_management() const {
-  return eap_.key_management;
+  return entry_->eap.key_management;
 }
 
 const std::vector<uint8_t> &WiFiService::ssid() const {