PFW: Do not stop on hard sync errors
BZ: 76263
When synchronization fails, the parameter-framework should
log a warning and continue synchronization instead of stopping
Change-Id: Ic12d8798ea25584db714ee26e644fac793c28881
Signed-off-by: Kevin Rocard <kevinx.rocard@intel.com>
Reviewed-on: http://android.intel.com:8080/81825
Reviewed-by: Centelles, Sylvain <sylvain.centelles@intel.com>
Reviewed-by: Denneulin, Guillaume <guillaume.denneulin@intel.com>
Tested-by: Dixon, CharlesX <charlesx.dixon@intel.com>
Reviewed-by: cactus <cactus@intel.com>
Tested-by: cactus <cactus@intel.com>
diff --git a/parameter/ConfigurableDomains.cpp b/parameter/ConfigurableDomains.cpp
index 56693ef..a1bfb3c 100644
--- a/parameter/ConfigurableDomains.cpp
+++ b/parameter/ConfigurableDomains.cpp
@@ -22,6 +22,7 @@
* CREATED: 2011-06-01
* UPDATED: 2011-07-27
*/
+#include <cassert>
#include "ConfigurableDomains.h"
#include "ConfigurableDomain.h"
#include "ConfigurableElement.h"
@@ -60,8 +61,9 @@
}
// Configuration application if required
-bool CConfigurableDomains::apply(CParameterBlackboard* pParameterBlackboard, bool bForce, string& strError) const
+void CConfigurableDomains::apply(CParameterBlackboard* pParameterBlackboard, bool bForce) const
{
+
CAutoLog autoLog(this, "Applying configurations");
// Syncer set
@@ -77,29 +79,24 @@
const CConfigurableDomain* pChildConfigurableDomain = static_cast<const CConfigurableDomain*>(getChild(uiChild));
- if (!pChildConfigurableDomain->getSequenceAwareness() && !pChildConfigurableDomain->apply(pParameterBlackboard, syncerSet, bForce, strError)) {
-
- return false;
+ if (!pChildConfigurableDomain->getSequenceAwareness()) {
+ // Apply sequence unaware domain
+ pChildConfigurableDomain->apply(pParameterBlackboard, syncerSet, bForce);
}
}
- // Synchronize
- if (!syncerSet.sync(*pParameterBlackboard, false, strError)) {
-
- return false;
- }
+ // Synchronize sequence unaware domains
+ syncerSet.sync(*pParameterBlackboard, false, NULL);
// Then deal with sequence aware domains
for (uiChild = 0; uiChild < uiNbConfigurableDomains; uiChild++) {
const CConfigurableDomain* pChildConfigurableDomain = static_cast<const CConfigurableDomain*>(getChild(uiChild));
- if (pChildConfigurableDomain->getSequenceAwareness() && !pChildConfigurableDomain->apply(pParameterBlackboard, syncerSet, bForce, strError)) {
-
- return false;
+ if (pChildConfigurableDomain->getSequenceAwareness()) {
+ // Apply sequence aware domain
+ pChildConfigurableDomain->apply(pParameterBlackboard, syncerSet, bForce);
}
}
-
- return true;
}
// From IXmlSource
@@ -123,7 +120,7 @@
return false;
}
- log("Creating configurable domain \"%s\"", strName.c_str());
+ log_info("Creating configurable domain \"%s\"", strName.c_str());
// Creation/Hierarchy
addChild(new CConfigurableDomain(strName));
@@ -140,7 +137,7 @@
return false;
}
- log("Deleting configurable domain \"%s\"", strName.c_str());
+ log_info("Deleting configurable domain \"%s\"", strName.c_str());
// Hierarchy
removeChild(pConfigurableDomain);
@@ -153,7 +150,7 @@
void CConfigurableDomains::deleteAllDomains()
{
- log("Deleting all configurable domains");
+ log_info("Deleting all configurable domains");
//remove Children
clean();
@@ -168,7 +165,7 @@
return false;
}
- log("Renaming configurable domain \"%s\" to \"%s\"", strName.c_str(), strNewName.c_str());
+ log_info("Renaming configurable domain \"%s\" to \"%s\"", strName.c_str(), strNewName.c_str());
// Rename
return pConfigurableDomain->rename(strNewName, strError);
@@ -377,17 +374,19 @@
}
// Config restore
-bool CConfigurableDomains::restoreConfiguration(const string& strDomain, const string& strConfiguration, CParameterBlackboard* pMainBlackboard, bool bAutoSync, string& strError) const
+bool CConfigurableDomains::restoreConfiguration(const string& strDomain, const string& strConfiguration, CParameterBlackboard* pMainBlackboard, bool bAutoSync, list<string>& lstrError) const
{
+ string strError;
// Find domain
const CConfigurableDomain* pConfigurableDomain = findConfigurableDomain(strDomain, strError);
if (!pConfigurableDomain) {
+ lstrError.push_back(strError);
return false;
}
// Delegate
- return pConfigurableDomain->restoreConfiguration(strConfiguration, pMainBlackboard, bAutoSync, strError);
+ return pConfigurableDomain->restoreConfiguration(strConfiguration, pMainBlackboard, bAutoSync, lstrError);
}
// Config save