diff options
| author | François Gaffie <francois.gaffie@intel.com> | 2016-02-17 07:54:16 +0100 |
|---|---|---|
| committer | Eric Laurent <elaurent@google.com> | 2016-03-04 17:47:11 -0800 |
| commit | 221a25e58e92ebc450c7eaba5f3ba8153a2308ae (patch) | |
| tree | 21fba4d16e7be1fc91e2e8b85b12ad3950c209a1 /upstream/parameter/SelectionCriterion.h | |
| parent | 9368eea42a1afb01dd44110582f997115b50e742 (diff) | |
| download | platform_external_parameter-framework-221a25e58e92ebc450c7eaba5f3ba8153a2308ae.tar.gz platform_external_parameter-framework-221a25e58e92ebc450c7eaba5f3ba8153a2308ae.tar.bz2 platform_external_parameter-framework-221a25e58e92ebc450c7eaba5f3ba8153a2308ae.zip | |
parameter-framework: move github upstream code to upstream folder
Change-Id: I3aa6e8f8fccfcf80fdc2a4e00c17d8b10b45e9dd
Signed-off-by: François Gaffie <francois.gaffie@intel.com>
Bug: 22887211
Diffstat (limited to 'upstream/parameter/SelectionCriterion.h')
| -rw-r--r-- | upstream/parameter/SelectionCriterion.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/upstream/parameter/SelectionCriterion.h b/upstream/parameter/SelectionCriterion.h new file mode 100644 index 0000000..76ec0ff --- /dev/null +++ b/upstream/parameter/SelectionCriterion.h @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2011-2015, Intel Corporation + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors + * may be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#pragma once + +#include "Element.h" +#include "SelectionCriterionType.h" +#include "SelectionCriterionInterface.h" +#include <log/Logger.h> +#include <NonCopyable.hpp> + +#include <string> + +class CSelectionCriterion : public CElement, + public ISelectionCriterionInterface, + private utility::NonCopyable +{ +public: + CSelectionCriterion(const std::string &strName, const CSelectionCriterionType *pType, + core::log::Logger &logger); + + /// From ISelectionCriterionInterface + // State + virtual void setCriterionState(int iState); + virtual int getCriterionState() const; + // Name + virtual std::string getCriterionName() const; + // Type + virtual const ISelectionCriterionTypeInterface *getCriterionType() const; + // Modified status + bool hasBeenModified() const; + void resetModifiedStatus(); + + /// Match methods + bool is(int iState) const; + bool isNot(int iState) const; + bool includes(int iState) const; + bool excludes(int iState) const; + + /// User request + std::string getFormattedDescription(bool bWithTypeInfo, bool bHumanReadable) const; + + /// From CElement + virtual std::string getKind() const; + + /** + * Export to XML + * + * @param[in] xmlElement The XML element to export to + * @param[in] serializingContext The serializing context + * + */ + virtual void toXml(CXmlElement &xmlElement, CXmlSerializingContext &serializingContext) const; + +private: + // Current state + int _iState{0}; + // Type + const CSelectionCriterionType *_pType; + + /** Counter to know how many modifications have been applied to this criterion */ + uint32_t _uiNbModifications{0}; + + /** Application logger */ + core::log::Logger &_logger; +}; |
