diff options
author | Guillaume Denneulin <guillaume.denneulin@intel.com> | 2014-01-31 15:09:42 +0100 |
---|---|---|
committer | David Wagner <david.wagner@intel.com> | 2014-02-13 16:08:59 +0100 |
commit | 3ba083ee0b0ff7e01caeb3bc7395377071e20fe6 (patch) | |
tree | d639c767d5308ee2658db9d1fc0f946067a74c94 /parameter/ComponentLibrary.cpp | |
parent | 7613e74a97d67c392a241ad3a62c6533b31f48ab (diff) | |
download | external_parameter-framework-3ba083ee0b0ff7e01caeb3bc7395377071e20fe6.zip external_parameter-framework-3ba083ee0b0ff7e01caeb3bc7395377071e20fe6.tar.gz external_parameter-framework-3ba083ee0b0ff7e01caeb3bc7395377071e20fe6.tar.bz2 |
In structure XML files, implement component library files inclusion
BZ: 168727
In the PFW structure file, it is not possible to include a component
library from another XML file.
Implement the possibility to import component from another XML file
that would be included in a structure XML file and that would
describe a component library.
Change-Id: Id6125140de1c8e9882375d01199f695b929f45e2
Signed-off-by: Guillaume Denneulin <guillaume.denneulin@intel.com>
Diffstat (limited to 'parameter/ComponentLibrary.cpp')
-rw-r--r-- | parameter/ComponentLibrary.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/parameter/ComponentLibrary.cpp b/parameter/ComponentLibrary.cpp index f133213..f3576e8 100644 --- a/parameter/ComponentLibrary.cpp +++ b/parameter/ComponentLibrary.cpp @@ -45,3 +45,35 @@ const CComponentType* CComponentLibrary::getComponentType(const string& strName) return static_cast<const CComponentType*>(findChild(strName)); } +bool CComponentLibrary::fromXml(const CXmlElement& xmlElement, + CXmlSerializingContext& serializingContext) +{ + CXmlElement childElement; + + CXmlElement::CChildIterator it(xmlElement); + + // XML populate all component libraries + while (it.next(childElement)) { + + // Filter component library/type set elements + if (childElement.getType() == "ComponentLibrary" || + childElement.getType() == "ComponentTypeSet") { + + if (!fromXml(childElement, serializingContext)) { + + return false; + } + } else { + // Regular child creation and populating + CElement* pChild = createChild(childElement, serializingContext); + + if (!pChild || !pChild->fromXml(childElement, serializingContext)) { + + return false; + } + } + } + + return true; +} + |