summaryrefslogtreecommitdiffstats
path: root/parameter/BaseParameter.cpp
diff options
context:
space:
mode:
authorPatrick Benavoli <patrickx.benavoli@intel.com>2011-10-27 14:18:00 +0200
committerDavid Wagner <david.wagner@intel.com>2014-02-10 17:14:57 +0100
commit4bed9212041d94d52e55e624bd081fcbf01ee04e (patch)
tree038feec5bb0749ff31674eb7198dbdafe8cb1cf9 /parameter/BaseParameter.cpp
parent63499d4763e42d76bfd39b79871f611381d2d164 (diff)
downloadexternal_parameter-framework-4bed9212041d94d52e55e624bd081fcbf01ee04e.zip
external_parameter-framework-4bed9212041d94d52e55e624bd081fcbf01ee04e.tar.gz
external_parameter-framework-4bed9212041d94d52e55e624bd081fcbf01ee04e.tar.bz2
PFW: Dynamic parameter access
BZ: 13272 Added dynamic parameter setting / getting interface for hosting platforms This new API allows: - getting any parameter - setting any parameter as long as it is rogue (attached to no domains) Passed parameter values are in the form of strings. Change-Id: I01a34597fcb4dafb225519cbc01dfffb22b5d52a Signed-off-by: Patrick Benavoli <patrickx.benavoli@intel.com> Reviewed-on: http://android.intel.com:8080/22629 Reviewed-by: Centelles, Sylvain <sylvain.centelles@intel.com> Tested-by: Barthes, FabienX <fabienx.barthes@intel.com> Reviewed-by: buildbot <buildbot@intel.com> Tested-by: buildbot <buildbot@intel.com> Reviewed-on: http://android.intel.com:8080/26781 Reviewed-by: Barthes, FabienX <fabienx.barthes@intel.com>
Diffstat (limited to 'parameter/BaseParameter.cpp')
-rw-r--r--parameter/BaseParameter.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/parameter/BaseParameter.cpp b/parameter/BaseParameter.cpp
index 67349d4..b4b0780 100644
--- a/parameter/BaseParameter.cpp
+++ b/parameter/BaseParameter.cpp
@@ -88,6 +88,12 @@ bool CBaseParameter::setValue(CPathNavigator& pathNavigator, const string& strVa
return false;
}
+ // Check for dynamic access
+ if (!checkForDynamicAccess(parameterContext)) {
+
+ return false;
+ }
+
// Set Value
if (!doSetValue(strValue, getOffset(), parameterContext)) {
@@ -115,8 +121,29 @@ bool CBaseParameter::getValue(CPathNavigator& pathNavigator, string& strValue, C
return false;
}
+ // Check for dynamic access
+ if (!checkForDynamicAccess(parameterContext)) {
+
+ return false;
+ }
+
// Get Value
doGetValue(strValue, getOffset(), parameterContext);
return true;
}
+
+// Dynamic access checking
+bool CBaseParameter::checkForDynamicAccess(CParameterAccessContext& parameterAccessContext) const
+{
+ // Check for dynamic access
+ if (parameterAccessContext.isDynamicAccess() && !isRogue()) {
+
+ // Parameter is not rogue
+ parameterAccessContext.setError("Parameter " + getPath() + " is not rogue");
+
+ return false;
+ }
+
+ return true;
+}