[shill] Begin wiring SetProperty
Create a PropertyStoreInterface that can be implemented by Device,
Service, Manager, etc to handle getting/setting of properties. The
various DBusAdaptor subclasses can dispatch incoming calls to their
associated implementation object based on the names of the properties
and/or the types of the arguments.
BUG=chromium-os:16343
TEST=unit tests
Change-Id: If7abb0ffa623e59288943b4ed1f49832a92524ea
Reviewed-on: http://gerrit.chromium.org/gerrit/2408
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
diff --git a/device.h b/device.h
index e8105b6..e258517 100644
--- a/device.h
+++ b/device.h
@@ -8,10 +8,12 @@
#include <string>
#include <vector>
+#include <base/basictypes.h>
#include <base/memory/ref_counted.h>
#include <base/memory/scoped_ptr.h>
#include "shill/device_config_interface.h"
+#include "shill/property_store_interface.h"
#include "shill/service.h"
#include "shill/shill_event.h"
@@ -21,8 +23,9 @@
class Device;
class DeviceAdaptorInterface;
class DeviceInfo;
-class EventDispatcher;
class Endpoint;
+class Error;
+class EventDispatcher;
class Manager;
typedef scoped_refptr<const Device> DeviceConstRefPtr;
@@ -30,7 +33,7 @@
// Device superclass. Individual network interfaces types will inherit from
// this class.
-class Device : public DeviceConfigInterface {
+class Device : public DeviceConfigInterface, public PropertyStoreInterface {
public:
enum Technology {
kEthernet,
@@ -59,6 +62,16 @@
// Implementation of DeviceConfigInterface
virtual void ConfigIP() {}
+ // Implementation of PropertyStoreInterface
+ bool SetBoolProperty(const std::string& name, bool value, Error *error);
+ bool SetInt16Property(const std::string& name, int16 value, Error *error);
+ bool SetInt32Property(const std::string& name, int32 value, Error *error);
+ bool SetStringProperty(const std::string& name,
+ const std::string& value,
+ Error *error);
+ bool SetUint16Property(const std::string& name, uint16 value, Error *error);
+ bool SetUint32Property(const std::string& name, uint32 value, Error *error);
+
// Returns a string that is guaranteed to uniquely identify this
// Device instance.
const std::string& UniqueName() const;