summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrédéric Boisnard <fredericx.boisnard@intel.com>2012-08-27 15:48:15 +0200
committerDavid Wagner <david.wagner@intel.com>2014-02-12 17:03:14 +0100
commitdaaa63ce33fa4795403f9339bc872694c9ab6113 (patch)
treeb34506f80e67f4b2396dd89be365f687d2c18926
parent951ecce4fbf195694b14ef8504c59732354abcdb (diff)
downloadexternal_parameter-framework-daaa63ce33fa4795403f9339bc872694c9ab6113.zip
external_parameter-framework-daaa63ce33fa4795403f9339bc872694c9ab6113.tar.gz
external_parameter-framework-daaa63ce33fa4795403f9339bc872694c9ab6113.tar.bz2
PFW: Display warning messages to help user
BZ: 54512 Display a warning message when a configuration cannot be applied because the TuningMode is on, in order to help user to identify potential issues. Display a warning message when a criterion change doesn't lead to a configuration application (a check is performed each time a criterion is changed). Change-Id: Id872655c92770d1f6f1b01b20db2fde3db826ceb Signed-off-by: Frédéric Boisnard <fredericx.boisnard@intel.com> Reviewed-on: http://android.intel.com:8080/63845 Reviewed-by: Rocard, KevinX <kevinx.rocard@intel.com> Reviewed-by: De Chivre, Renaud <renaud.de.chivre@intel.com> Reviewed-by: Denneulin, Guillaume <guillaume.denneulin@intel.com> Tested-by: Barthes, FabienX <fabienx.barthes@intel.com> Reviewed-by: buildbot <buildbot@intel.com> Tested-by: buildbot <buildbot@intel.com>
-rw-r--r--parameter/ParameterMgr.cpp9
-rw-r--r--parameter/SelectionCriteria.cpp6
-rw-r--r--parameter/SelectionCriteria.h5
-rw-r--r--parameter/SelectionCriteriaDefinition.cpp15
-rw-r--r--parameter/SelectionCriteriaDefinition.h3
-rw-r--r--parameter/SelectionCriterion.cpp22
-rw-r--r--parameter/SelectionCriterion.h5
7 files changed, 62 insertions, 3 deletions
diff --git a/parameter/ParameterMgr.cpp b/parameter/ParameterMgr.cpp
index 9f1d160..14a5b4b 100644
--- a/parameter/ParameterMgr.cpp
+++ b/parameter/ParameterMgr.cpp
@@ -1,4 +1,4 @@
-/*
+/*
* INTEL CONFIDENTIAL
* Copyright © 2011 Intel
* Corporation All Rights Reserved.
@@ -576,6 +576,13 @@ bool CParameterMgr::applyConfigurations(string& strError)
return false;
}
+
+ // Reset the modified status of the current criteria to indicate that a new configuration has been applied
+ getSelectionCriteria()->resetModifiedStatus();
+
+ } else {
+
+ log("Warning: Configurations were not applied because the TuningMode is on");
}
return true;
diff --git a/parameter/SelectionCriteria.cpp b/parameter/SelectionCriteria.cpp
index 9a4aa04..f75ec35 100644
--- a/parameter/SelectionCriteria.cpp
+++ b/parameter/SelectionCriteria.cpp
@@ -62,6 +62,12 @@ void CSelectionCriteria::listSelectionCriteria(string& strResult, bool bWithType
getSelectionCriteriaDefinition()->listSelectionCriteria(strResult, bWithTypeInfo);
}
+// Reset the modified status of the children
+void CSelectionCriteria::resetModifiedStatus()
+{
+ getSelectionCriteriaDefinition()->resetModifiedStatus();
+}
+
// Children access
CSelectionCriterionLibrary* CSelectionCriteria::getSelectionCriterionLibrary()
{
diff --git a/parameter/SelectionCriteria.h b/parameter/SelectionCriteria.h
index 19cfcdc..dd274d0 100644
--- a/parameter/SelectionCriteria.h
+++ b/parameter/SelectionCriteria.h
@@ -1,4 +1,4 @@
-/*
+/*
* INTEL CONFIDENTIAL
* Copyright © 2011 Intel
* Corporation All Rights Reserved.
@@ -55,6 +55,9 @@ public:
// Base
virtual string getKind() const;
+
+ // Reset the modified status of the children
+ void resetModifiedStatus();
private:
// Children access
CSelectionCriterionLibrary* getSelectionCriterionLibrary();
diff --git a/parameter/SelectionCriteriaDefinition.cpp b/parameter/SelectionCriteriaDefinition.cpp
index ab2c42f..7027a94 100644
--- a/parameter/SelectionCriteriaDefinition.cpp
+++ b/parameter/SelectionCriteriaDefinition.cpp
@@ -70,3 +70,18 @@ void CSelectionCriteriaDefinition::listSelectionCriteria(string& strResult, bool
}
}
+// Reset the modified status of the children
+void CSelectionCriteriaDefinition::resetModifiedStatus()
+{
+ // Propagate
+ uint32_t uiNbChildren = getNbChildren();
+ uint32_t uiChild;
+ CSelectionCriterion* pSelectionCriterion;
+
+ for (uiChild = 0; uiChild < uiNbChildren; uiChild++) {
+
+ pSelectionCriterion = static_cast<CSelectionCriterion*>(getChild(uiChild));
+
+ pSelectionCriterion->resetModifiedStatus();
+ }
+}
diff --git a/parameter/SelectionCriteriaDefinition.h b/parameter/SelectionCriteriaDefinition.h
index 6d6a24d..337f7c3 100644
--- a/parameter/SelectionCriteriaDefinition.h
+++ b/parameter/SelectionCriteriaDefinition.h
@@ -46,5 +46,8 @@ public:
// Base
virtual string getKind() const;
+
+ // Reset the modified status of the children
+ void resetModifiedStatus();
};
diff --git a/parameter/SelectionCriterion.cpp b/parameter/SelectionCriterion.cpp
index 7f2809a..453f244 100644
--- a/parameter/SelectionCriterion.cpp
+++ b/parameter/SelectionCriterion.cpp
@@ -27,7 +27,7 @@
#define base CElement
-CSelectionCriterion::CSelectionCriterion(const string& strName, const CSelectionCriterionType* pType) : base(strName), _iState(0), _pType(pType)
+CSelectionCriterion::CSelectionCriterion(const string& strName, const CSelectionCriterionType* pType) : base(strName), _iState(0), _pType(pType), _uiNbModifications(0)
{
}
@@ -36,6 +36,16 @@ string CSelectionCriterion::getKind() const
return "SelectionCriterion";
}
+bool CSelectionCriterion::hasBeenModified() const
+{
+ return _uiNbModifications != 0;
+}
+
+void CSelectionCriterion::resetModifiedStatus()
+{
+ _uiNbModifications = 0;
+}
+
/// From ISelectionCriterionInterface
// State
void CSelectionCriterion::setCriterionState(int iState)
@@ -46,6 +56,16 @@ void CSelectionCriterion::setCriterionState(int iState)
_iState = iState;
log("Selection criterion changed event: %s", getFormattedDescription(false).c_str());
+
+ // Check if the previous criterion value has been taken into account (i.e. at least one Configuration was applied
+ // since the last criterion change)
+ if (_uiNbModifications > 0) {
+
+ log("Warning: Selection criterion \"%s\" has been modified %d time(s) without any configuration application", getName().c_str(), _uiNbModifications);
+ }
+
+ // Track the number of modifications for this criterion
+ _uiNbModifications++;
}
}
diff --git a/parameter/SelectionCriterion.h b/parameter/SelectionCriterion.h
index be6eac2..cf66c45 100644
--- a/parameter/SelectionCriterion.h
+++ b/parameter/SelectionCriterion.h
@@ -45,6 +45,9 @@ public:
virtual string getCriterionName() const;
// Type
virtual const ISelectionCriterionTypeInterface* getCriterionType() const;
+ // Modified status
+ bool hasBeenModified() const;
+ void resetModifiedStatus();
/// Match methods
bool is(int iState) const;
@@ -62,5 +65,7 @@ private:
int _iState;
// Type
const CSelectionCriterionType* _pType;
+ // Counter to know how many modifications have been applied to this criterion
+ uint8_t _uiNbModifications;
};