X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/eadce057a2c8e09df65641e77935bd9ffc905440..6d004c352f7b26fba38486001f874e65466b5bee:/src/surf/PropertyHolder.cpp?ds=sidebyside diff --git a/src/surf/PropertyHolder.cpp b/src/surf/PropertyHolder.cpp index 8b002a4c86..bf262b9e1e 100644 --- a/src/surf/PropertyHolder.cpp +++ b/src/surf/PropertyHolder.cpp @@ -5,6 +5,8 @@ #include "PropertyHolder.hpp" +#include + namespace simgrid { namespace surf { @@ -33,5 +35,22 @@ const std::unordered_map* PropertyHolder::get_properti return properties_.get(); } +/** @brief Change the value of the given keys in the property set */ +template void PropertyHolder::set_properties(const Assoc& properties) +{ + if (not properties_) + properties_.reset(new std::unordered_map); + std::unordered_map props(properties.cbegin(), properties.cend()); +#if __cplusplus >= 201703L + props.merge(properties_); +#else + props.insert(properties_->cbegin(), properties_->cend()); +#endif + properties_->swap(props); +} + +template void PropertyHolder::set_properties(const std::map& properties); +template void PropertyHolder::set_properties(const std::unordered_map& properties); + } /* namespace surf */ } /* namespace simgrid */