Re-land "[shill] Provide a cmd line toggle between flimflam and shill storage dirs"

This is so that we can easily switch to (and away from) using
the flimflam profile dir (and user profile dirs) when we start shill.

BUG=chromium-os:17253
TEST=unit

Change-Id: I0264162665607bb180688428c4640e42383ae355
Reviewed-on: http://gerrit.chromium.org/gerrit/6568
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
diff --git a/manager.h b/manager.h
index 9a4aa47..4b6fcba 100644
--- a/manager.h
+++ b/manager.h
@@ -39,10 +39,12 @@
     std::string portal_url;
   };
 
-  // A constructor for the Manager object
   Manager(ControlInterface *control_interface,
           EventDispatcher *dispatcher,
-          GLib *glib);
+          GLib *glib,
+          const std::string &run_directory,
+          const std::string &storage_directory,
+          const std::string &user_storage_format);
   virtual ~Manager();
 
   void AddDeviceToBlackList(const std::string &device_name);
@@ -71,8 +73,6 @@
  private:
   friend class ManagerAdaptorInterface;
 
-  static const char kDefaultRunDirectory[];
-
   std::string CalculateState();
   std::vector<std::string> AvailableTechnologies();
   std::vector<std::string> ConnectedTechnologies();
@@ -90,7 +90,9 @@
                                   Strings(Manager::*get)(void),
                                   bool(Manager::*set)(const Strings&));
 
-  FilePath run_path_;
+  const FilePath run_path_;
+  const FilePath storage_path_;
+  const std::string user_storage_format_;
   scoped_ptr<ManagerAdaptorInterface> adaptor_;
   DeviceInfo device_info_;
   ModemInfo modem_info_;
@@ -100,6 +102,8 @@
   std::vector<ServiceRefPtr> services_;
   std::vector<ProfileRefPtr> profiles_;
   ProfileRefPtr ephemeral_profile_;
+  ControlInterface *control_interface_;
+  GLib *glib_;
 
   // Properties to be get/set via PropertyStore calls.
   Properties props_;