/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
-#include "src/surf/surf_routing_private.hpp"
#include "src/surf/surf_routing_cluster_torus.hpp"
#include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area
XBT_VERB("torus_get_route_and_latency from '%s'[%d] to '%s'[%d]",
src->name(), src->id(), dst->name(), dst->id());
- if (dst->getRcType() == SURF_NETWORK_ELEMENT_ROUTER || src->getRcType() == SURF_NETWORK_ELEMENT_ROUTER)
+ if (dst->isRouter() || src->isRouter())
return;
if ((src->id() == dst->id()) && has_loopback_) {
- s_surf_parsing_link_up_down_t info =
- xbt_dynar_get_as(upDownLinks, src->id() * nb_links_per_node_, s_surf_parsing_link_up_down_t);
- xbt_dynar_push_as(route->link_list, void *, info.link_up);
+ s_surf_parsing_link_up_down_t info = xbt_dynar_get_as(upDownLinks, src->id() * nb_links_per_node_, s_surf_parsing_link_up_down_t);
+ route->link_list->push_back(info.link_up);
if (lat)
- *lat += static_cast < Link * >(info.link_up)->getLatency();
+ *lat += info.link_up->getLatency();
return;
}
if (has_limiter_) { // limiter for sender
info = xbt_dynar_get_as(upDownLinks, nodeOffset + has_loopback_, s_surf_parsing_link_up_down_t);
- xbt_dynar_push_as(route->link_list, void *, info.link_up);
+ route->link_list->push_back(info.link_up);
}
info = xbt_dynar_get_as(upDownLinks, linkOffset, s_surf_parsing_link_up_down_t);
if (use_lnk_up == false) {
- xbt_dynar_push_as(route->link_list, void *, info.link_down);
-
+ route->link_list->push_back(info.link_down);
if (lat)
- *lat += static_cast < Link * >(info.link_down)->getLatency();
+ *lat += info.link_down->getLatency();
} else {
- xbt_dynar_push_as(route->link_list, void *, info.link_up);
-
+ route->link_list->push_back(info.link_up);
if (lat)
- *lat += static_cast < Link * >(info.link_up)->getLatency();
+ *lat += info.link_up->getLatency();
}
current_node = next_node;
next_node = 0;
free(myCoords);
free(targetCoords);
-
-
return;
}