[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/manager.h b/manager.h
index f6fc027..e8a7dcb 100644
--- a/manager.h
+++ b/manager.h
@@ -14,6 +14,7 @@
 
 #include "shill/device.h"
 #include "shill/device_info.h"
+#include "shill/glib.h"
 #include "shill/property_store.h"
 #include "shill/service.h"
 #include "shill/shill_event.h"
@@ -43,6 +44,8 @@
   void Start();
   void Stop();
 
+  const ProfileRefPtr &ActiveProfile();
+
   void RegisterDevice(const DeviceRefPtr &to_manage);
   void DeregisterDevice(const DeviceConstRefPtr &to_forget);
 
@@ -67,27 +70,28 @@
   // active profile, once we have such a thing.
   std::vector<std::string> EnumerateAvailableServices();
   std::vector<std::string> EnumerateWatchedServices();
+  std::string GetActiveProfileName();
 
   void HelpRegisterDerivedString(const std::string &name,
-                             std::string(Manager::*get)(void),
-                             bool(Manager::*set)(const std::string&));
+                                 std::string(Manager::*get)(void),
+                                 bool(Manager::*set)(const std::string&));
   void HelpRegisterDerivedStrings(const std::string &name,
-                              Strings(Manager::*get)(void),
-                              bool(Manager::*set)(const Strings&));
+                                  Strings(Manager::*get)(void),
+                                  bool(Manager::*set)(const Strings&));
 
+  GLib glib_;
   scoped_ptr<ManagerAdaptorInterface> adaptor_;
   DeviceInfo device_info_;
   bool running_;
   std::vector<DeviceRefPtr> devices_;
   std::vector<ServiceRefPtr> services_;
+  std::vector<ProfileRefPtr> profiles_;
+  ProfileRefPtr ephemeral_profile_;
 
   // Properties to be get/set via PropertyStore calls.
   Properties props_;
   PropertyStore store_;
 
-  std::string active_profile_;  // This is supposed to be, essentially,
-                                // an RPC-visible object handle
-
   friend class ManagerAdaptorInterface;
 };