diff options
author | Kevin Rocard <kevinx.rocard@intel.com> | 2013-01-28 17:02:08 +0100 |
---|---|---|
committer | David Wagner <david.wagner@intel.com> | 2014-02-12 17:03:49 +0100 |
commit | 084cafba76fa5c987cdffeaaa7401202473554cb (patch) | |
tree | 0d389569389cfcd6b76aaa49fa65968578c7fdcf /parameter/Subsystem.h | |
parent | db43cf055f954efbaa50157637a034511eed2849 (diff) | |
download | external_parameter-framework-084cafba76fa5c987cdffeaaa7401202473554cb.zip external_parameter-framework-084cafba76fa5c987cdffeaaa7401202473554cb.tar.gz external_parameter-framework-084cafba76fa5c987cdffeaaa7401202473554cb.tar.bz2 |
PFW: Parameter bloc can handle any mapping depth
BZ: 85878
Needed for subsystem object definition enhancement.
In a PFW structure file, if a parameter bloc is defined in another
parameter bloc with context mapping only (no instanciable mapping),
the PFW will no longer stop diving on the first parameter bloc.
Change-Id: If4f704f01e20eb348d931c0baab1b85936fc75a4
Signed-off-by: Kevin Rocard <kevinx.rocard@intel.com>
Reviewed-on: http://android.intel.com:8080/88959
Reviewed-by: Dixon, CharlesX <charlesx.dixon@intel.com>
Tested-by: Dixon, CharlesX <charlesx.dixon@intel.com>
Reviewed-by: Boisnard, FredericX <fredericx.boisnard@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
Diffstat (limited to 'parameter/Subsystem.h')
-rw-r--r-- | parameter/Subsystem.h | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/parameter/Subsystem.h b/parameter/Subsystem.h index 0b808ad..5a0f844 100644 --- a/parameter/Subsystem.h +++ b/parameter/Subsystem.h @@ -85,14 +85,42 @@ private: // Generic subsystem mapping error handling void getMappingError(string& strError, const string& strKey, const string& strMessage, const CInstanceConfigurableElement* pInstanceConfigurableElement); - // From IMapper + /** + * Handle a configurable element mapping. + * + * Add context mappings to the context and instantiate a subsystem object if needed. + * + * @param[in:out] pInstanceConfigurableElement The configurable element + * @param[out] bKeepDiving Keep diving for mapping keys + Is set to true if a subsystem object (tree leave) has been instantiated. + Undetermined on error + * @param[out] strError String filled with an human readable error on error, + left unmodified otherwise + * + * @return true on success, false on failure + */ virtual bool mapBegin(CInstanceConfigurableElement* pInstanceConfigurableElement, bool& bKeepDiving, string& strError); virtual void mapEnd(); // Mapping generic context handling bool handleMappingContext(const CInstanceConfigurableElement* pInstanceConfigurableElement, CMappingContext& context, string& strError); - // Subsystem object creation handling - bool handleSubsystemObjectCreation(CInstanceConfigurableElement* pInstanceConfigurableElement, CMappingContext& context, string& strError); + + /** + * Looks if a subsystem object needs to be instantiated for the given configurable + * element, then instantiate it if needed. + * + * @param[in:out] pInstanceConfigurableElement The configurable element to check + * for instanciation + * @param[in] context The mapping values container + * @param[out] bHasCreatedSubsystemObject If a subsystem object has been instantiated. + Undetermined on error + * @param[out] strError String filled with an human readable error on error, + left unmodified otherwise + * + * @return true on success, false on failure + */ + bool handleSubsystemObjectCreation(CInstanceConfigurableElement* pInstanceConfigurableElement, + CMappingContext& context, bool& bHasCreatedSubsystemObject, string& strError); // Subsystem context mapping keys vector<string> _contextMappingKeyArray; |