X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d27569cf3d838674e1325b58e2b9184b5b700bf5..7097365f75e89b3b266987b2ec70b9dbc82bfded:/src/s4u/s4u_netzone.cpp diff --git a/src/s4u/s4u_netzone.cpp b/src/s4u/s4u_netzone.cpp index ed4aa1dd5d..e2149e69aa 100644 --- a/src/s4u/s4u_netzone.cpp +++ b/src/s4u/s4u_netzone.cpp @@ -7,18 +7,18 @@ #include "simgrid/s4u/NetZone.hpp" #include "simgrid/s4u/host.hpp" -#include "src/kernel/routing/NetCard.hpp" +#include "simgrid/simix.hpp" +#include "src/kernel/routing/NetPoint.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_netzone, "S4U Networking Zones"); namespace simgrid { namespace s4u { -simgrid::xbt::signal* link_list)> +simgrid::xbt::signal* link_list)> NetZone::onRouteCreation; NetZone::NetZone(NetZone* father, const char* name) : father_(father), name_(xbt_strdup(name)) @@ -32,7 +32,7 @@ NetZone::~NetZone() { xbt_dict_cursor_t cursor = nullptr; char* key; - NetZone_t elem; + NetZone* elem; xbt_dict_foreach (children_, cursor, key, elem) { delete static_cast(elem); } @@ -40,6 +40,24 @@ NetZone::~NetZone() xbt_dict_free(&children_); xbt_free(name_); } +std::unordered_map* NetZone::properties() +{ + return simgrid::simix::kernelImmediate([this] { + 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([this,key,value] { + properties_[key] = value; + }); +} xbt_dict_t NetZone::children() { @@ -66,7 +84,7 @@ xbt_dynar_t NetZone::hosts() return res; } -int NetZone::addComponent(kernel::routing::NetCard* elm) +int NetZone::addComponent(kernel::routing::NetPoint* elm) { vertices_.push_back(elm); return vertices_.size() - 1; // The rank of the newly created object