X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a79a8e1cab86ccc687cfbc97b01b735acb996f16..0eead244337fde8f0508629f8f8473f946c19f88:/src/s4u/s4u_netzone.cpp diff --git a/src/s4u/s4u_netzone.cpp b/src/s4u/s4u_netzone.cpp index 67e20a2f5b..3d9e085a6f 100644 --- a/src/s4u/s4u_netzone.cpp +++ b/src/s4u/s4u_netzone.cpp @@ -7,11 +7,11 @@ #include "simgrid/s4u/NetZone.hpp" #include "simgrid/s4u/host.hpp" +#include "simgrid/simix.hpp" #include "src/kernel/routing/NetCard.hpp" #include "src/surf/network_interface.hpp" // Link FIXME: move to proper header -#include "src/surf/surf_routing.hpp" -XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_as, "S4U autonomous systems"); +XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_netzone, "S4U Networking Zones"); namespace simgrid { namespace s4u { @@ -34,12 +34,30 @@ NetZone::~NetZone() char* key; NetZone_t elem; xbt_dict_foreach (children_, cursor, key, elem) { - delete (NetZone*)elem; + delete static_cast(elem); } xbt_dict_free(&children_); xbt_free(name_); } +std::unordered_map* NetZone::properties() +{ + return simgrid::simix::kernelImmediate([=] { + return &properties_; + }); +} + +/** Retrieve the property value (or nullptr if not set) */ +const char* NetZone::property(const char* key) +{ + return properties_.at(key).c_str(); +} +void NetZone::setProperty(const char* key, const char* value) +{ + simgrid::simix::kernelImmediate([=] { + properties_[key] = value; + }); +} xbt_dict_t NetZone::children() {