[shill] Add support for setting properties.
This CL adds a framework for supporting RPC-exposed properties in Shill.
It also plumbs the code for setting properties on Service objects to prove
the approach. Device and Manager settings will follow.
BUG=chromium-os:16343
TEST=build shill, run unit tests.
Change-Id: I55869453d6039e688f1a49be9dfb1ba1315efe0a
Reviewed-on: http://gerrit.chromium.org/gerrit/3004
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
diff --git a/manager.h b/manager.h
index 58d4407..bcfe6b4 100644
--- a/manager.h
+++ b/manager.h
@@ -29,7 +29,7 @@
// A constructor for the Manager object
Manager(ControlInterface *control_interface,
EventDispatcher *dispatcher);
- ~Manager();
+ virtual ~Manager();
void Start();
void Stop();
@@ -45,18 +45,31 @@
ServiceRefPtr FindService(const std::string& name);
// Implementation of PropertyStoreInterface
- bool SetBoolProperty(const std::string& name, bool value, Error *error);
-
- bool SetStringProperty(const std::string& name,
- const std::string& value,
- Error *error);
+ virtual bool Contains(const std::string &property);
+ virtual bool SetBoolProperty(const std::string &name,
+ bool value,
+ Error *error);
+ virtual bool SetStringProperty(const std::string &name,
+ const std::string &value,
+ Error *error);
private:
scoped_ptr<ManagerAdaptorInterface> adaptor_;
DeviceInfo device_info_;
bool running_;
+ std::vector<std::string> known_properties_;
std::vector<DeviceRefPtr> devices_;
std::vector<ServiceRefPtr> services_;
+
+ // Properties to be get/set via PropertyStoreInterface calls.
+ bool offline_mode_;
+ std::string state_;
+ std::string country_;
+ std::string portal_url_;
+
+ std::string active_profile_; // This is supposed to be, essentially,
+ // an RPC-visible object handle
+
friend class ManagerAdaptorInterface;
};