summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Rocard <kevinx.rocard@intel.com>2012-11-30 11:24:20 +0100
committerDavid Wagner <david.wagner@intel.com>2014-02-12 17:03:30 +0100
commit57096bd2de45c840090503d70f40b79565e38881 (patch)
tree72ff2440533d6a3e5c4d577b78212b01898cc7d5
parent8d6e34b5fed9d64266cb9dae35677dd19eb641b6 (diff)
downloadexternal_parameter-framework-57096bd2de45c840090503d70f40b79565e38881.zip
external_parameter-framework-57096bd2de45c840090503d70f40b79565e38881.tar.gz
external_parameter-framework-57096bd2de45c840090503d70f40b79565e38881.tar.bz2
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 <kevinx.rocard@intel.com> Reviewed-on: http://android.intel.com:8080/81269 Reviewed-by: Barthes, FabienX <fabienx.barthes@intel.com> Tested-by: Barthes, FabienX <fabienx.barthes@intel.com> Reviewed-by: cactus <cactus@intel.com> Tested-by: cactus <cactus@intel.com>
-rw-r--r--parameter/AutoLog.cpp25
-rw-r--r--parameter/AutoLog.h4
-rw-r--r--parameter/ParameterMgr.cpp22
-rw-r--r--parameter/XmlFileIncluderElement.cpp49
4 files changed, 56 insertions, 44 deletions
diff --git a/parameter/AutoLog.cpp b/parameter/AutoLog.cpp
index 629d57b..eb59b01 100644
--- a/parameter/AutoLog.cpp
+++ b/parameter/AutoLog.cpp
@@ -24,20 +24,23 @@
*/
#include "AutoLog.h"
-CAutoLog::CAutoLog(const CElement* pElement, const string& strContext) : _pElement(pElement), _strContext(strContext)
+CAutoLog::CAutoLog(const CElement* pElement, const string& strContext, bool bLogOn)
+ : _pElement(pElement), _strContext(strContext), _bLogOn(bLogOn)
{
- // Log
- _pElement->doLog(_strContext + " {");
-
- // Nest
- _pElement->nestLog();
+ if (_bLogOn) {
+ // Log
+ _pElement->doLog(_strContext + " {");
+ // Nest
+ _pElement->nestLog();
+ }
}
CAutoLog::~CAutoLog()
{
- // Unnest
- _pElement->unnestLog();
-
- // Log
- _pElement->doLog( "} " + _strContext);
+ if (_bLogOn) {
+ // Unnest
+ _pElement->unnestLog();
+ // Log
+ _pElement->doLog( "} " + _strContext);
+ }
}
diff --git a/parameter/AutoLog.h b/parameter/AutoLog.h
index c6a2a01..818b3c5 100644
--- a/parameter/AutoLog.h
+++ b/parameter/AutoLog.h
@@ -29,7 +29,7 @@
class CAutoLog
{
public:
- CAutoLog(const CElement* pElement, const string& strContext);
+ CAutoLog(const CElement* pElement, const string& strContext, bool bLogOn = true);
~CAutoLog();
private:
@@ -39,5 +39,7 @@ private:
const CElement* _pElement;
// Context
string _strContext;
+ // Log on
+ bool _bLogOn;
};
diff --git a/parameter/ParameterMgr.cpp b/parameter/ParameterMgr.cpp
index cff2b47..4e6e4da 100644
--- a/parameter/ParameterMgr.cpp
+++ b/parameter/ParameterMgr.cpp
@@ -332,19 +332,21 @@ bool CParameterMgr::load(string& strError)
// Back synchronization for areas in parameter blackboard not covered by any domain
CBackSynchronizer* pBackSynchronizer = createBackSynchronizer(strError);
- log("Main blackboard back synchronization");
-
// Back-synchronize
- if (!pBackSynchronizer->sync()) {
- // Get rid of back synchronizer
- delete pBackSynchronizer;
+ {
+ CAutoLog autoLog(this, "Main blackboard back synchronization");
- strError = "Main blackboard back synchronization failed: " + strError;
+ if (!pBackSynchronizer->sync()) {
+ // Get rid of back synchronizer
+ delete pBackSynchronizer;
- return false;
+ strError = "Main blackboard back synchronization failed: " + strError;
+
+ return false;
+ }
+ // Get rid of back synchronizer
+ delete pBackSynchronizer;
}
- // Get rif of back synchronizer
- delete pBackSynchronizer;
// We're done loading the settings and back synchronizing
CConfigurableDomains* pConfigurableDomains = getConfigurableDomains();
@@ -420,7 +422,7 @@ bool CParameterMgr::loadStructure(string& strError)
// Parse Structure XML file
CXmlParameterSerializingContext parameterBuildContext(strError);
- log("Importing system structure from file %s", strXmlStructureFilePath.c_str());
+ CAutoLog autolog(pSystemClass, "Importing system structure from file " + strXmlStructureFilePath);
if (!xmlParse(parameterBuildContext, pSystemClass, strXmlStructureFilePath, strXmlStructureFolder, EParameterCreationLibrary)) {
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 <assert.h>
#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);