X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/30aca4d4af004d1ec899d12f0a9fe3997e9be15e..fb33f893495b18dc7a0e13182b901d4cf662150f:/src/s4u/s4u_netzone.cpp diff --git a/src/s4u/s4u_netzone.cpp b/src/s4u/s4u_netzone.cpp index 3d9e085a6f..780baadf35 100644 --- a/src/s4u/s4u_netzone.cpp +++ b/src/s4u/s4u_netzone.cpp @@ -8,7 +8,7 @@ #include "simgrid/s4u/NetZone.hpp" #include "simgrid/s4u/host.hpp" #include "simgrid/simix.hpp" -#include "src/kernel/routing/NetCard.hpp" +#include "src/kernel/routing/NetPoint.hpp" #include "src/surf/network_interface.hpp" // Link FIXME: move to proper header XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_netzone, "S4U Networking Zones"); @@ -16,14 +16,15 @@ 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)) { } + void NetZone::seal() { sealed_ = true; @@ -32,17 +33,18 @@ 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); } + delete hosts_; xbt_dict_free(&children_); xbt_free(name_); } std::unordered_map* NetZone::properties() { - return simgrid::simix::kernelImmediate([=] { + return simgrid::simix::kernelImmediate([this] { return &properties_; }); } @@ -54,7 +56,7 @@ const char* NetZone::property(const char* key) } void NetZone::setProperty(const char* key, const char* value) { - simgrid::simix::kernelImmediate([=] { + simgrid::simix::kernelImmediate([this,key,value] { properties_[key] = value; }); } @@ -72,19 +74,17 @@ NetZone* NetZone::father() return father_; } -xbt_dynar_t NetZone::hosts() +std::vector* NetZone::hosts() { - xbt_dynar_t res = xbt_dynar_new(sizeof(sg_host_t), nullptr); - for (auto card : vertices_) { s4u::Host* host = simgrid::s4u::Host::by_name_or_null(card->name()); if (host != nullptr) - xbt_dynar_push(res, &host); + hosts_->push_back(host); } - return res; + return hosts_; } -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