summaryrefslogtreecommitdiffstats
path: root/parameter/SystemClass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'parameter/SystemClass.cpp')
-rw-r--r--parameter/SystemClass.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/parameter/SystemClass.cpp b/parameter/SystemClass.cpp
index dbce345..bf98cb1 100644
--- a/parameter/SystemClass.cpp
+++ b/parameter/SystemClass.cpp
@@ -232,6 +232,26 @@ const CSubsystemLibrary* CSystemClass::getSubsystemLibrary() const
return _pSubsystemLibrary;
}
+// Fill syncer-set with syncers from subsytems that need resync
+void CSystemClass::checkForSubsystemsToResync(CSyncerSet& syncerSet)
+{
+ uint32_t uiNbChildren = getNbChildren();
+ uint32_t uiChild;
+
+ for (uiChild = 0; uiChild < uiNbChildren; uiChild++) {
+
+ CSubsystem* pSubsystem = static_cast<CSubsystem*>(getChild(uiChild));
+
+ // Collect and consume the need for a resync
+ if (pSubsystem->needResync(true)) {
+
+ log_info("Resynchronizing subsystem: %s", pSubsystem->getName().c_str());
+ // get all subsystem syncers
+ pSubsystem->fillSyncerSet(syncerSet);
+ }
+ }
+}
+
bool CSystemClass::init(string& strError)
{
return base::init(strError);