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>
diff --git a/parameter/AreaConfiguration.h b/parameter/AreaConfiguration.h
index b5e7e4c..6afed71 100644
--- a/parameter/AreaConfiguration.h
+++ b/parameter/AreaConfiguration.h
@@ -64,10 +64,10 @@
const CConfigurableElement* getConfigurableElement() const;
// Configuration merging
- void copyFromInner(const CAreaConfiguration* pFromAreaConfiguration);
+ virtual void copyToOuter(CAreaConfiguration* pToAreaConfiguration) const;
// Configuration splitting
- void copyToInner(CAreaConfiguration* pToAreaConfiguration) const;
+ virtual void copyFromOuter(const CAreaConfiguration* pFromAreaConfiguration);
// XML configuration settings parsing/composing
bool serializeXmlSettings(CXmlElement& xmlConfigurableElementSettingsElementContent, CConfigurationAccessContext& configurationAccessContext);
@@ -77,19 +77,29 @@
// Data size
uint32_t getSize() const;
+
+protected:
+ CAreaConfiguration(const CConfigurableElement* pConfigurableElement, const CSyncerSet* pSyncerSet, uint32_t uiSize);
+
private:
+ // Blackboard copies
+ virtual void copyTo(CParameterBlackboard* pToBlackboard, uint32_t uiOffset) const;
+ virtual void copyFrom(const CParameterBlackboard* pFromBlackboard, uint32_t uiOffset);
+
// Store validity
void setValid(bool bValid);
+protected:
// Associated configurable element
const CConfigurableElement* _pConfigurableElement;
- // Syncer set (required for immediate synchronization)
- const CSyncerSet* _pSyncerSet;
-
// Configurable element settings
CParameterBlackboard _blackboard;
+private:
+ // Syncer set (required for immediate synchronization)
+ const CSyncerSet* _pSyncerSet;
+
// Area configuration validity (invalid area configurations can't be restored)
bool _bValid;
};