aboutsummaryrefslogtreecommitdiffstats
path: root/parameter/AreaConfiguration.cpp
diff options
context:
space:
mode:
authorFrédéric Boisnard <fredericx.boisnard@intel.com>2012-05-30 16:15:02 +0200
committerDavid Wagner <david.wagner@intel.com>2014-02-12 17:03:10 +0100
commit9620e44c6c7605bf589f60331eb5b05b71336853 (patch)
tree24de41296b6da730e70f1ced0ad633bb4a7c7da3 /parameter/AreaConfiguration.cpp
parent8b01852701d50869318663f568270f977d93dbdf (diff)
downloadexternal_parameter-framework-9620e44c6c7605bf589f60331eb5b05b71336853.zip
external_parameter-framework-9620e44c6c7605bf589f60331eb5b05b71336853.tar.gz
external_parameter-framework-9620e44c6c7605bf589f60331eb5b05b71336853.tar.bz2
PFW: Fixed bug on BitParameterTypes
BZ: 44148 The save and restore operation would not work correctly when BitParameters of a BitParameterBlock were used in more than a single Domain. This patch aims to fixup this bug and introduces a new class: BitwiseAreaConfiguration. Change-Id: I0aaccd57cf1cce33400f94a8879565171d283425 Orig-Change-Id: I7107f7db9f01cfff3c38cbac606a8c1e9bca8b5e Signed-off-by: Frédéric Boisnard <fredericx.boisnard@intel.com> Reviewed-on: http://android.intel.com:8080/58363 Reviewed-by: Mendi, EduardoX <eduardox.mendi@intel.com> Tested-by: Mendi, EduardoX <eduardox.mendi@intel.com> Reviewed-by: buildbot <buildbot@intel.com> Tested-by: buildbot <buildbot@intel.com>
Diffstat (limited to 'parameter/AreaConfiguration.cpp')
-rw-r--r--parameter/AreaConfiguration.cpp37
1 files changed, 26 insertions, 11 deletions
diff --git a/parameter/AreaConfiguration.cpp b/parameter/AreaConfiguration.cpp
index 2e8c63d..8d2368d 100644
--- a/parameter/AreaConfiguration.cpp
+++ b/parameter/AreaConfiguration.cpp
@@ -41,10 +41,17 @@ CAreaConfiguration::CAreaConfiguration(const CConfigurableElement* pConfigurable
_blackboard.setSize(_pConfigurableElement->getFootPrint());
}
+CAreaConfiguration::CAreaConfiguration(const CConfigurableElement* pConfigurableElement, const CSyncerSet* pSyncerSet, uint32_t uiSize)
+ : _pConfigurableElement(pConfigurableElement), _pSyncerSet(pSyncerSet), _bValid(false)
+{
+ // Size blackboard
+ _blackboard.setSize(uiSize);
+}
+
// Save data from current
void CAreaConfiguration::save(const CParameterBlackboard* pMainBlackboard)
{
- pMainBlackboard->saveTo(&_blackboard, _pConfigurableElement->getOffset());
+ copyFrom(pMainBlackboard, _pConfigurableElement->getOffset());
}
// Apply data to current
@@ -52,7 +59,7 @@ bool CAreaConfiguration::restore(CParameterBlackboard* pMainBlackboard, bool bSy
{
assert(_bValid);
- pMainBlackboard->restoreFrom(&_blackboard, _pConfigurableElement->getOffset());
+ copyTo(pMainBlackboard, _pConfigurableElement->getOffset());
// Synchronize if required
if (bSync) {
@@ -131,23 +138,21 @@ const CConfigurableElement* CAreaConfiguration::getConfigurableElement() const
return _pConfigurableElement;
}
-// Configuration merging (we assume from element is descendant of this)
-void CAreaConfiguration::copyFromInner(const CAreaConfiguration* pFromAreaConfiguration)
+void CAreaConfiguration::copyToOuter(CAreaConfiguration* pToAreaConfiguration) const
{
- assert(pFromAreaConfiguration->getConfigurableElement()->isDescendantOf(_pConfigurableElement));
+ assert(_pConfigurableElement->isDescendantOf(pToAreaConfiguration->getConfigurableElement()));
- _blackboard.restoreFrom(&pFromAreaConfiguration->_blackboard, pFromAreaConfiguration->getConfigurableElement()->getOffset() - _pConfigurableElement->getOffset());
+ copyTo(&pToAreaConfiguration->_blackboard, _pConfigurableElement->getOffset() - pToAreaConfiguration->getConfigurableElement()->getOffset());
}
-// Configuration splitting
-void CAreaConfiguration::copyToInner(CAreaConfiguration* pToAreaConfiguration) const
+void CAreaConfiguration::copyFromOuter(const CAreaConfiguration* pFromAreaConfiguration)
{
- assert(pToAreaConfiguration->getConfigurableElement()->isDescendantOf(_pConfigurableElement));
+ assert(_pConfigurableElement->isDescendantOf(pFromAreaConfiguration->getConfigurableElement()));
- _blackboard.saveTo(&pToAreaConfiguration->_blackboard, pToAreaConfiguration->getConfigurableElement()->getOffset() - _pConfigurableElement->getOffset());
+ copyFrom(&pFromAreaConfiguration->_blackboard, _pConfigurableElement->getOffset() - pFromAreaConfiguration->getConfigurableElement()->getOffset());
// Inner becomes valid
- pToAreaConfiguration->setValid(true);
+ setValid(true);
}
// Serialization
@@ -175,4 +180,14 @@ void CAreaConfiguration::setValid(bool bValid)
_bValid = bValid;
}
+// Blackboard copies
+void CAreaConfiguration::copyTo(CParameterBlackboard* pToBlackboard, uint32_t uiOffset) const
+{
+ pToBlackboard->restoreFrom(&_blackboard, uiOffset);
+}
+
+void CAreaConfiguration::copyFrom(const CParameterBlackboard* pFromBlackboard, uint32_t uiOffset)
+{
+ pFromBlackboard->saveTo(&_blackboard, uiOffset);
+}