| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #ifndef cmPropertyMap_h
- #define cmPropertyMap_h
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <string>
- #include <unordered_map>
- #include <utility>
- #include <vector>
- #include "cmProperty.h"
- /** \class cmPropertyMap
- * \brief String property map.
- */
- class cmPropertyMap
- {
- public:
- // -- General
- //! Clear property list
- void Clear();
- // -- Properties
- //! Set the property value
- void SetProperty(const std::string& name, const char* value);
- //! Append to the property value
- void AppendProperty(const std::string& name, const std::string& value,
- bool asString = false);
- //! Get the property value
- cmProp GetPropertyValue(const std::string& name) const;
- //! Remove the property @a name from the map
- void RemoveProperty(const std::string& name);
- // -- Lists
- //! Get a sorted list of property keys
- std::vector<std::string> GetKeys() const;
- //! Get a sorted by key list of property key,value pairs
- std::vector<std::pair<std::string, std::string>> GetList() const;
- private:
- std::unordered_map<std::string, std::string> Map_;
- };
- #endif
|