diff options
author | Georges-Henri Baron <georges-henrix.baron@intel.com> | 2012-09-04 17:30:28 +0200 |
---|---|---|
committer | David Wagner <david.wagner@intel.com> | 2014-02-12 17:03:57 +0100 |
commit | cec86c1904a45a7027218adb3d34c8764bdfcc38 (patch) | |
tree | 218f0204920c09d264e9caa9ade0ba92cd74ac51 /xmlserializer/XmlDocSource.h | |
parent | d7e4844d85db591a2ea235dd1b081c76e2f5cb9d (diff) | |
download | external_parameter-framework-cec86c1904a45a7027218adb3d34c8764bdfcc38.zip external_parameter-framework-cec86c1904a45a7027218adb3d34c8764bdfcc38.tar.gz external_parameter-framework-cec86c1904a45a7027218adb3d34c8764bdfcc38.tar.bz2 |
PFW: Add setDomainsXML command to import domains from string
BZ: 55694
Unable possibility to import the configurable domains from a string
Create one command that can be called through the command
line of the parameter-framework. The command setDomainXML
allows to import configurable domains with settings from
a string provided as first argument containing the xml description.
Change-Id: I6db7ccb8ba61b5e4c8ba81579a68f40e887d1534
Signed-off-by: Georges-Henri Baron <georges-henrix.baron@intel.com>
Reviewed-on: http://android.intel.com:8080/65408
Reviewed-by: cactus <cactus@intel.com>
Reviewed-by: Dixon, CharlesX <charlesx.dixon@intel.com>
Reviewed-by: Rocard, KevinX <kevinx.rocard@intel.com>
Tested-by: Dixon, CharlesX <charlesx.dixon@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
Diffstat (limited to 'xmlserializer/XmlDocSource.h')
-rw-r--r-- | xmlserializer/XmlDocSource.h | 151 |
1 files changed, 141 insertions, 10 deletions
diff --git a/xmlserializer/XmlDocSource.h b/xmlserializer/XmlDocSource.h index a59919e..1953425 100644 --- a/xmlserializer/XmlDocSource.h +++ b/xmlserializer/XmlDocSource.h @@ -1,6 +1,6 @@ /* * INTEL CONFIDENTIAL - * Copyright © 2011 Intel + * Copyright © 2013 Intel * Corporation All Rights Reserved. * * The source code contained or described herein and all documents related to @@ -18,44 +18,175 @@ * of the Materials, either expressly, by implication, inducement, estoppel or * otherwise. Any license under such intellectual property rights must be * express and approved by Intel in writing. - * - * CREATED: 2012-08-10 */ #pragma once - #include "XmlElement.h" #include "XmlSerializingContext.h" +#include <string> struct _xmlDoc; struct _xmlNode; +struct _xmlError; +/** + * The CXmlDocSource is used by CXmlDocSink. + * The interaction between the xml source and xml sink is defined + * in the process method of CXmlDocSink. One can subclass CXmlDocSource + * for different purposes by implementing the populate method and then + * use it with any existing implementation of CXmlDocSink. + */ class CXmlDocSource { public: + /** + * Constructor + * + * @param[out] pDoc a pointer to the xml document that will be filled by the class + * @param[in] pRootNode a pointer to the root element of the document. + */ CXmlDocSource(_xmlDoc* pDoc, _xmlNode* pRootNode = NULL); + + /** + * Constructor + * + * @param[out] pDoc a pointer to the xml document that will be filled by the class + * @param[in] strXmlSchemaFile a string containing the path to the schema file + * @param[in] strRootElementType a string containing the root element type + * @param[in] strRootElementName a string containing the root element name + * @param[in] strNameAttributeName a string containing the name of the root name attribute + */ + CXmlDocSource(_xmlDoc* pDoc, + const string& strXmlSchemaFile, + const string& strRootElementType, + const string& strRootElementName, + const string& strNameAttrituteName); + + /** + * Constructor + * + * @param[out] pDoc a pointer to the xml document that will be filled by the class + * @param[in] strXmlSchemaFile a string containing the path to the schema file + * @param[in] strRootElementType a string containing the root element type + */ + CXmlDocSource(_xmlDoc* pDoc, const string& strXmlSchemaFile, const string& strRootElementType); + + /** + * Destructor + */ virtual ~CXmlDocSource(); - // Method Called by the CXmlDocSink::process method + /** + * Method called by the CXmlDocSink::process method. + * + * @param[out] serializingContext is used as error output + * + * @return false if there are any error + */ virtual bool populate(CXmlSerializingContext& serializingContext) = 0; - // Root element + /** + * Method that returns the root element of the Xml tree. + * + * @param[out] xmlRootElement a reference to the CXmleElement destination + */ void getRootElement(CXmlElement& xmlRootElement) const; + + /** + * Getter method. + * + * @return the root element's name + */ string getRootElementName() const; + + /** + * Getter method. + * Method that returns the root element's attribute with name matching strAttributeName. + * + * @param[in] strAttributeName is a string used to find the corresponding attribute + * + * @return the value of the root's attribute named as strAttributeName + */ string getRootElementAttributeString(const string& strAttributeName) const; - // Method that returns the xmlDoc contained in the Source. (Can be used in a Doc Sink) + /** + * Getter method. + * Method that returns the xmlDoc contained in the Source. + * (Can be used in a Doc Sink) + * + * @return the document _pDoc + */ _xmlDoc* getDoc() const; + /** + * Method that validates the Xml doc contained in pDoc + * + * @param[out] serializingContext is used as error output + * + * @return false if any error occurs + */ + virtual bool validate(CXmlSerializingContext& serializingContext); + protected: - // Doc + /** + * Doc + */ _xmlDoc* _pDoc; - // Root node + /** + * Root node + */ _xmlNode* _pRootNode; - // libxml2 library cleanup + /** + * libxml2 library cleanup + */ static bool _bLibXml2CleanupScheduled; + +private: + + /** + * Method that initializes class internal attributes in constructor + */ + void init(); + + /** Method that check the validity of the document with the xsd file. + * + * @return true if document is valid, false if any error occures + */ + bool isInstanceDocumentValid(); + + /** Validity error display method + * + * @param[in] pUserData pointer to the data to validate + * @param[out] pError is the xml error output + */ + static void schemaValidityStructuredErrorFunc(void* pUserData, _xmlError* pError); + + /** + * Schema file + */ + string _strXmlSchemaFile; + + /** + * Element type info + */ + string _strRootElementType; + + /** + * Element name info + */ + string _strRootElementName; + + /** + * Element name attribute info + */ + string _strNameAttrituteName; + + /** + * Boolean that enables the root element name attribute check + */ + bool _bNameCheck; }; |