summaryrefslogtreecommitdiffstats
path: root/parameter/EnumParameterType.h
diff options
context:
space:
mode:
authorPatrick Benavoli <patrickx.benavoli@intel.com>2011-10-27 14:27:27 +0200
committerDavid Wagner <david.wagner@intel.com>2014-02-10 17:14:57 +0100
commit9fc3c0d2118102588ba82b1cad85b1d7c27967aa (patch)
tree3fc42a147e8252d7f821cf333039be538811ef61 /parameter/EnumParameterType.h
parent4bed9212041d94d52e55e624bd081fcbf01ee04e (diff)
downloadexternal_parameter-framework-9fc3c0d2118102588ba82b1cad85b1d7c27967aa.zip
external_parameter-framework-9fc3c0d2118102588ba82b1cad85b1d7c27967aa.tar.gz
external_parameter-framework-9fc3c0d2118102588ba82b1cad85b1d7c27967aa.tar.bz2
PFW: Enumeration types
BZ: 13274 Added enumeration type parameters. They are sizeable like integers but always treated as signed. Lexical - numerical value pairs are now specified from the Strutural description XML file (subsystem level). When set, literal or numerical values may be used interchangeably, however the output form will depend on the currently selected value space and output format. Change-Id: I498b53a2bbd8f414bb8a09063c28265a7502bfbf Signed-off-by: Patrick Benavoli <patrickx.benavoli@intel.com> Reviewed-on: http://android.intel.com:8080/22635 Reviewed-by: Centelles, Sylvain <sylvain.centelles@intel.com> Tested-by: Barthes, FabienX <fabienx.barthes@intel.com> Reviewed-by: buildbot <buildbot@intel.com> Tested-by: buildbot <buildbot@intel.com> Reviewed-on: http://android.intel.com:8080/26782 Reviewed-by: Barthes, FabienX <fabienx.barthes@intel.com>
Diffstat (limited to 'parameter/EnumParameterType.h')
-rw-r--r--parameter/EnumParameterType.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/parameter/EnumParameterType.h b/parameter/EnumParameterType.h
new file mode 100644
index 0000000..f6d546f
--- /dev/null
+++ b/parameter/EnumParameterType.h
@@ -0,0 +1,79 @@
+/* <auto_header>
+ * <FILENAME>
+ *
+ * INTEL CONFIDENTIAL
+ * Copyright © 2011 Intel
+ * Corporation All Rights Reserved.
+ *
+ * The source code contained or described herein and all documents related to
+ * the source code ("Material") are owned by Intel Corporation or its suppliers
+ * or licensors. Title to the Material remains with Intel Corporation or its
+ * suppliers and licensors. The Material contains trade secrets and proprietary
+ * and confidential information of Intel or its suppliers and licensors. The
+ * Material is protected by worldwide copyright and trade secret laws and
+ * treaty provisions. No part of the Material may be used, copied, reproduced,
+ * modified, published, uploaded, posted, transmitted, distributed, or
+ * disclosed in any way without Intel’s prior express written permission.
+ *
+ * No license under any patent, copyright, trade secret or other intellectual
+ * property right is granted to or conferred upon you by disclosure or delivery
+ * of the Materials, either expressly, by implication, inducement, estoppel or
+ * otherwise. Any license under such intellectual property rights must be
+ * express and approved by Intel in writing.
+ *
+ * AUTHOR: Patrick Benavoli (patrickx.benavoli@intel.com)
+ * CREATED: 2011-06-01
+ * UPDATED: 2011-07-27
+ *
+ *
+ * </auto_header>
+ */
+#pragma once
+
+#include "ParameterType.h"
+
+#include <list>
+
+class CEnumParameterType : public CParameterType
+{
+ // Value pairs
+ struct SValuePair
+ {
+ SValuePair(const string& strLiteral, int32_t iNumerical) : _strLiteral(strLiteral), _iNumerical(iNumerical) {}
+
+ string _strLiteral;
+ int32_t _iNumerical;
+ };
+ typedef list<SValuePair>::const_iterator ValuePairListIterator;
+public:
+ CEnumParameterType(const string& strName);
+
+ // From IXmlSink
+ virtual bool fromXml(const CXmlElement& xmlElement, CXmlSerializingContext& serializingContext);
+
+ // Conversion
+ virtual bool asInteger(const string& strValue, uint32_t& uiValue, CParameterAccessContext& parameterAccessContext) const;
+ virtual void asString(const uint32_t& uiValue, string& strValue, CParameterAccessContext& parameterAccessContext) const;
+
+ // Default value handling (simulation only)
+ virtual uint32_t getDefaultValue() const;
+
+ // Element properties
+ virtual void showProperties(string& strResult) const;
+
+ // CElement
+ virtual string getKind() const;
+private:
+ // Check string is a number
+ static bool isNumber(const string& strValue);
+
+ // Literal - numerical conversions
+ bool getLiteral(int32_t iNumerical, string& strLiteral) const;
+ bool getNumerical(const string& strLiteral, int32_t& iNumerical) const;
+
+ // Numerical validity
+ bool isValid(int32_t iNumerical) const;
+
+ // Value pairs
+ list<SValuePair> _valuePairList;
+};