diff options
author | Patrick Benavoli <patrickx.benavoli@intel.com> | 2011-10-27 14:18:00 +0200 |
---|---|---|
committer | David Wagner <david.wagner@intel.com> | 2014-02-10 17:14:57 +0100 |
commit | 4bed9212041d94d52e55e624bd081fcbf01ee04e (patch) | |
tree | 038feec5bb0749ff31674eb7198dbdafe8cb1cf9 /parameter/BaseParameter.cpp | |
parent | 63499d4763e42d76bfd39b79871f611381d2d164 (diff) | |
download | external_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.cpp | 27 |
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; +} |