X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e18a7b043d161b29d0bf3f5743cb7a570241576a..9dc842c5693960b11e58a90abb9f35d54337a7d3:/src/s4u/s4u_netzone.cpp diff --git a/src/s4u/s4u_netzone.cpp b/src/s4u/s4u_netzone.cpp index 0dc3a43ffb..6e1b14b6c0 100644 --- a/src/s4u/s4u_netzone.cpp +++ b/src/s4u/s4u_netzone.cpp @@ -18,7 +18,7 @@ namespace s4u { simgrid::xbt::signal* link_list)> + std::vector& link_list)> NetZone::onRouteCreation; simgrid::xbt::signal NetZone::onCreation; simgrid::xbt::signal NetZone::onSeal; @@ -59,11 +59,16 @@ void NetZone::setProperty(const char* key, const char* value) }); } +/** @brief Returns the list of direct children (no grand-children) + * + * This function returns the internal copy of the childrens, not a copy. Don't mess with it! + */ std::vector* NetZone::getChildren() { return children_; } -const char* NetZone::getCname() + +const char* NetZone::getCname() const { return name_.c_str(); } @@ -75,19 +80,31 @@ NetZone* NetZone::getFather() void NetZone::getHosts(std::vector* whereto) { for (auto const& card : vertices_) { - s4u::Host* host = simgrid::s4u::Host::by_name_or_null(card->name()); + s4u::Host* host = simgrid::s4u::Host::by_name_or_null(card->getName()); if (host != nullptr) whereto->push_back(host); } } +int NetZone::getHostCount() +{ + int count = 0; + for (auto const& card : vertices_) { + s4u::Host* host = simgrid::s4u::Host::by_name_or_null(card->getName()); + if (host != nullptr) + count++; + } + return count; +} + int NetZone::addComponent(kernel::routing::NetPoint* elm) { vertices_.push_back(elm); return vertices_.size() - 1; // The rank of the newly created object } -void NetZone::addRoute(sg_platf_route_cbarg_t /*route*/) +void NetZone::addRoute(sg_netpoint_t /*src*/, sg_netpoint_t /*dst*/, sg_netpoint_t /*gw_src*/, sg_netpoint_t /*gw_dst*/, + std::vector& /*link_list*/, bool /*symmetrical*/) { xbt_die("NetZone '%s' does not accept new routes (wrong class).", name_.c_str()); }