X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9e3b2f1d55a07271c05db2ed5b3fec27561097f9..40ec51314bd79bc97ee416073e9805088eab6f7c:/src/surf/PropertyHolder.hpp diff --git a/src/surf/PropertyHolder.hpp b/src/surf/PropertyHolder.hpp index 04ff48837f..2c7cdceedf 100644 --- a/src/surf/PropertyHolder.hpp +++ b/src/surf/PropertyHolder.hpp @@ -5,6 +5,8 @@ #ifndef SRC_SURF_PROPERTYHOLDER_HPP_ #define SRC_SURF_PROPERTYHOLDER_HPP_ + +#include #include #include @@ -19,18 +21,17 @@ class PropertyHolder { // DO NOT DERIVE THIS CLASS, or the diamond inheritance m public: PropertyHolder() = default; - ~PropertyHolder(); + PropertyHolder(const PropertyHolder&) = delete; + PropertyHolder& operator=(const PropertyHolder&) = delete; - const char* get_property(const std::string& key); - void set_property(const std::string& id, std::string value); + const char* get_property(const std::string& key) const; + void set_property(const std::string& id, const std::string& value); - /* FIXME: This should not be exposed, as users may do bad things with the map they got (it's not a copy). - * But some user API expose this call so removing it is not so easy. - */ - std::unordered_map* get_properties(); + const std::unordered_map* get_properties(); + template void set_properties(const Assoc& properties); private: - std::unordered_map* properties_ = nullptr; + std::unique_ptr> properties_ = nullptr; }; } /* namespace surf */