summaryrefslogtreecommitdiffstats
path: root/parameter/FormattedSubsystemObject.h
diff options
context:
space:
mode:
authorFrederic Boisnard <fredericx.boisnard@intel.com>2013-05-23 18:48:58 +0200
committerDavid Wagner <david.wagner@intel.com>2014-02-12 17:04:04 +0100
commit6cae0ecf49ec7815aa59a4f4a0ec99976ca38032 (patch)
tree36cc121db7d4ff68c665fb153f5b0dc7da62d679 /parameter/FormattedSubsystemObject.h
parent390b36d8129d3ece769c8542d9d3d3895ab13fbb (diff)
downloadexternal_parameter-framework-6cae0ecf49ec7815aa59a4f4a0ec99976ca38032.zip
external_parameter-framework-6cae0ecf49ec7815aa59a4f4a0ec99976ca38032.tar.gz
external_parameter-framework-6cae0ecf49ec7815aa59a4f4a0ec99976ca38032.tar.bz2
Add showMapping command to the PFW
BZ: 99822 Developers often need to get the mapping corresponding to a specific parameter. However, the PFW doesn't provide a command to achieve this goal. This patch aims to add the showMapping command to the PFW. Change-Id: I05af64a408abe4ceb7f5d177a0ff5fa0461034d0 Signed-off-by: Frédéric Boisnard <fredericx.boisnard@intel.com> Reviewed-on: http://android.intel.com:8080/105145 Reviewed-by: Benavoli, Patrick <patrick.benavoli@intel.com> Reviewed-by: Denneulin, Guillaume <guillaume.denneulin@intel.com> Reviewed-by: Gonzalve, Sebastien <sebastien.gonzalve@intel.com> Tested-by: Barthes, FabienX <fabienx.barthes@intel.com> Reviewed-by: buildbot <buildbot@intel.com> Tested-by: buildbot <buildbot@intel.com>
Diffstat (limited to 'parameter/FormattedSubsystemObject.h')
-rw-r--r--parameter/FormattedSubsystemObject.h105
1 files changed, 105 insertions, 0 deletions
diff --git a/parameter/FormattedSubsystemObject.h b/parameter/FormattedSubsystemObject.h
new file mode 100644
index 0000000..dd90822
--- /dev/null
+++ b/parameter/FormattedSubsystemObject.h
@@ -0,0 +1,105 @@
+/*
+ * INTEL CONFIDENTIAL
+ * Copyright © 2013 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.
+ *
+ */
+#pragma once
+
+#include "SubsystemObject.h"
+
+class CFormattedSubsystemObject : public CSubsystemObject
+{
+public:
+ /**
+ * Builds a new CFormattedSubsystemObject instance, without any mapping information.
+ *
+ * @param[in] pInstanceConfigurableElement Instance of the element linked to the SubsytemObject.
+ */
+ CFormattedSubsystemObject(CInstanceConfigurableElement* pInstanceConfigurableElement);
+
+ /**
+ * Builds a new CFormattedSubsystemObject instance, using a simple mapping value without Amends.
+ *
+ * @param[in] pInstanceConfigurableElement Instance of the element linked to the SubsytemObject.
+ * @param[in] strFormattedMapping A string corresponding to the mapping of the element. The
+ * string does not contain any Amend (%) and does not need to be formatted.
+ */
+ CFormattedSubsystemObject(CInstanceConfigurableElement* pInstanceConfigurableElement,
+ const string& strFormattedMapping);
+
+ /**
+ * Builds a new CFormattedSubsystemObject instance, using a mapping value containing Amends.
+ *
+ * @param[in] pInstanceConfigurableElement Instance of the element linked to the SubsytemObject.
+ * @param[in] strMappingValue A string corresponding to the mapping of the element. The
+ * string contains Amend (%) and needs to be formatted with information from the context.
+ * @param[in] uiFirstAmendKey Index of the first Amend key
+ * @param[in] uiNbAmendKeys Number of Amends
+ * @param[in] context Contains values associated to Amend keys
+ */
+ CFormattedSubsystemObject(CInstanceConfigurableElement* pInstanceConfigurableElement,
+ const string& strMappingValue,
+ uint32_t uiFirstAmendKey,
+ uint32_t uiNbAmendKeys,
+ const CMappingContext& context);
+ virtual ~CFormattedSubsystemObject();
+
+ /**
+ * Returns the formatted mapping value associated to the element.
+ *
+ * @return A string containing the mapping
+ */
+ virtual string getFormattedMappingValue() const;
+
+private:
+
+ /**
+ * Check if the index of Amend key is valid.
+ *
+ * @param uiAmendKey Index of the Amend key
+ *
+ * @return true if the index of the Amend key is > 0 and <= 9.
+ */
+ static bool isAmendKeyValid(uint32_t uiAmendKey);
+
+ /**
+ * Generic mapping formatting
+ *
+ * Format a string from mapping data and its context, replacing amendments by their value
+ *
+ * @param[in] strMappingValue The input mapping string containing amendments
+ * @param[in] context uiFirstAmendKey The index of the first Amend key in the key list of the
+ * context
+ * @param[in] uiNbAmendKeys Number of Amend keys in the context
+ * @param[in] context The context containing Amend values
+ *
+ * @return The formatted string, corresponding to the input strMappingValue where %n have been
+ * replaced by their value
+ */
+ static string formatMappingValue(const string& strMappingValue,
+ uint32_t uiFirstAmendKey,
+ uint32_t uiNbAmendKeys,
+ const CMappingContext& context);
+
+ /**
+ * string containing the formatted mapping value
+ */
+ string _strFormattedMappingValue;
+};