diff options
author | Kevin Rocard <kevinx.rocard@intel.com> | 2012-12-11 16:19:17 +0100 |
---|---|---|
committer | David Wagner <david.wagner@intel.com> | 2014-02-12 17:03:31 +0100 |
commit | ace81f873b910493ab884dc5a6a38ba6ec3d56d3 (patch) | |
tree | 0835bb56ade03f1bd98834f1aaf1abeca3c00459 /parameter/ConfigurableDomains.cpp | |
parent | 57096bd2de45c840090503d70f40b79565e38881 (diff) | |
download | external_parameter-framework-ace81f873b910493ab884dc5a6a38ba6ec3d56d3.zip external_parameter-framework-ace81f873b910493ab884dc5a6a38ba6ec3d56d3.tar.gz external_parameter-framework-ace81f873b910493ab884dc5a6a38ba6ec3d56d3.tar.bz2 |
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>
Diffstat (limited to 'parameter/ConfigurableDomains.cpp')
-rw-r--r-- | parameter/ConfigurableDomains.cpp | 39 |
1 files changed, 19 insertions, 20 deletions
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 @@ void CConfigurableDomains::validate(const CParameterBlackboard* pMainBlackboard) } // 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 @@ bool CConfigurableDomains::apply(CParameterBlackboard* pParameterBlackboard, boo 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 @@ bool CConfigurableDomains::createDomain(const string& strName, string& strError) 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 @@ bool CConfigurableDomains::deleteDomain(const string& strName, string& strError) 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 @@ bool CConfigurableDomains::deleteDomain(const string& strName, string& strError) void CConfigurableDomains::deleteAllDomains() { - log("Deleting all configurable domains"); + log_info("Deleting all configurable domains"); //remove Children clean(); @@ -168,7 +165,7 @@ bool CConfigurableDomains::renameDomain(const string& strName, const string& str 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 @@ void CConfigurableDomains::gatherAllOwnedConfigurableElements(set<const CConfigu } // 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 |