X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d6ee04bb4b77788c1f17220a2117f41573c9dcde..95a02a8febe84fd1c2ed98c78c594a5e8a0116f7:/src/s4u/s4u_netzone.cpp diff --git a/src/s4u/s4u_netzone.cpp b/src/s4u/s4u_netzone.cpp index 52e401458b..bff05a5f41 100644 --- a/src/s4u/s4u_netzone.cpp +++ b/src/s4u/s4u_netzone.cpp @@ -5,10 +5,10 @@ #include "xbt/log.h" +#include "simgrid/kernel/routing/NetPoint.hpp" #include "simgrid/s4u/Host.hpp" #include "simgrid/s4u/NetZone.hpp" #include "simgrid/simix.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"); @@ -59,10 +59,15 @@ 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 children, not a copy. Don't mess with it! + */ std::vector* NetZone::getChildren() { return children_; } + const char* NetZone::getCname() const { return name_.c_str(); @@ -81,13 +86,25 @@ void NetZone::getHosts(std::vector* whereto) } } +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()); }