diff options
author | Frederic Boisnard <fredericx.boisnard@intel.com> | 2013-05-23 18:48:58 +0200 |
---|---|---|
committer | David Wagner <david.wagner@intel.com> | 2014-02-12 17:04:04 +0100 |
commit | 6cae0ecf49ec7815aa59a4f4a0ec99976ca38032 (patch) | |
tree | 36cc121db7d4ff68c665fb153f5b0dc7da62d679 /parameter/FormattedSubsystemObject.h | |
parent | 390b36d8129d3ece769c8542d9d3d3895ab13fbb (diff) | |
download | external_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.h | 105 |
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; +}; |