X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/93b7899156ac9fee75c4a6a8b65b92b265d61d4f..344675a92e654095d45d949867394e7b7ffcad12:/src/surf/PropertyHolder.hpp diff --git a/src/surf/PropertyHolder.hpp b/src/surf/PropertyHolder.hpp index bd03e3cf1b..2c7cdceedf 100644 --- a/src/surf/PropertyHolder.hpp +++ b/src/surf/PropertyHolder.hpp @@ -1,11 +1,14 @@ -/* Copyright (c) 2015. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2015-2019. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ #ifndef SRC_SURF_PROPERTYHOLDER_HPP_ #define SRC_SURF_PROPERTYHOLDER_HPP_ -#include + +#include +#include +#include namespace simgrid { namespace surf { @@ -17,14 +20,18 @@ namespace surf { class PropertyHolder { // DO NOT DERIVE THIS CLASS, or the diamond inheritance mayhem will get you public: - PropertyHolder(xbt_dict_t props); - ~PropertyHolder(); + PropertyHolder() = default; + PropertyHolder(const PropertyHolder&) = delete; + PropertyHolder& operator=(const PropertyHolder&) = delete; + + const char* get_property(const std::string& key) const; + void set_property(const std::string& id, const std::string& value); + + const std::unordered_map* get_properties(); + template void set_properties(const Assoc& properties); - const char *getProperty(const char*id); - void setProperty(const char*id, const char*value); - xbt_dict_t getProperties(); private: - xbt_dict_t p_properties = NULL; + std::unique_ptr> properties_ = nullptr; }; } /* namespace surf */