From 57096bd2de45c840090503d70f40b79565e38881 Mon Sep 17 00:00:00 2001 From: Kevin Rocard Date: Fri, 30 Nov 2012 11:24:20 +0100 Subject: PFW: Improve login in PFW core and amixer plugin BZ: 71914 Autolog adds a nesting log level. It is not always needed. For example in a Debug context a lot of log can be expected, so this level is useful but not otherwise. Autolog nesting is now optional. Add log during PFW structure loading. Change-Id: I24e1f615e3032c70a3b8b85a1cc1804dc49b631c Origin-Change-Id: I1f2c6c843e17595d4a81c1d2dfbff30d4187cdf8 Signed-off-by: Kevin Rocard Reviewed-on: http://android.intel.com:8080/81269 Reviewed-by: Barthes, FabienX Tested-by: Barthes, FabienX Reviewed-by: cactus Tested-by: cactus --- parameter/XmlFileIncluderElement.cpp | 49 ++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 22 deletions(-) (limited to 'parameter/XmlFileIncluderElement.cpp') diff --git a/parameter/XmlFileIncluderElement.cpp b/parameter/XmlFileIncluderElement.cpp index 4986758..06f64ff 100644 --- a/parameter/XmlFileIncluderElement.cpp +++ b/parameter/XmlFileIncluderElement.cpp @@ -27,6 +27,7 @@ #include "XmlMemoryDocSink.h" #include "XmlElementSerializingContext.h" #include "ElementLibrary.h" +#include "AutoLog.h" #include #define base CKindElement @@ -53,41 +54,45 @@ bool CXmlFileIncluderElement::fromXml(const CXmlElement& xmlElement, CXmlSeriali // Instantiate parser string strIncludedElementType = getIncludedElementType(); - // Use a doc source that load data from a file - CXmlFileDocSource fileDocSource(strPath, elementSerializingContext.getXmlSchemaPathFolder() + "/" + strIncludedElementType + ".xsd", strIncludedElementType); + { + // Open a log section titled with loading file path + CAutoLog autolog(this, "Loading " + strPath); - if (!fileDocSource.isParsable(elementSerializingContext)) { + // Use a doc source that load data from a file + CXmlFileDocSource fileDocSource(strPath, elementSerializingContext.getXmlSchemaPathFolder() + "/" + strIncludedElementType + ".xsd", strIncludedElementType); - return false; - } + if (!fileDocSource.isParsable(elementSerializingContext)) { - // Get top level element - CXmlElement childElement; + return false; + } - fileDocSource.getRootElement(childElement); + // Get top level element + CXmlElement childElement; - // Create child element - CElement* pChild = elementSerializingContext.getElementLibrary()->createElement(childElement); + fileDocSource.getRootElement(childElement); - if (pChild) { + // Create child element + CElement* pChild = elementSerializingContext.getElementLibrary()->createElement(childElement); - // Store created child! - getParent()->addChild(pChild); - } else { + if (pChild) { - elementSerializingContext.setError("Unable to create XML element " + childElement.getPath()); + // Store created child! + getParent()->addChild(pChild); + } else { - return false; - } + elementSerializingContext.setError("Unable to create XML element " + childElement.getPath()); - // Use a doc sink that instantiate the structure from the doc source - CXmlMemoryDocSink memorySink(pChild); + return false; + } - if (!memorySink.process(fileDocSource, elementSerializingContext)) { + // Use a doc sink that instantiate the structure from the doc source + CXmlMemoryDocSink memorySink(pChild); - return false; - } + if (!memorySink.process(fileDocSource, elementSerializingContext)) { + return false; + } + } // Detach from parent getParent()->removeChild(this); -- cgit v1.1