* under the terms of the license (GNU LGPL) which comes with this package. */
#include "src/kernel/routing/DijkstraZone.hpp"
-#include "src/kernel/routing/NetCard.hpp"
+#include "src/kernel/routing/NetPoint.hpp"
#include "src/surf/network_interface.hpp"
#include <float.h>
if (!found) {
sg_platf_route_cbarg_t e_route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
- e_route->link_list = new std::vector<Link*>();
+ e_route->link_list = new std::vector<surf::LinkImpl*>();
e_route->link_list->push_back(surf_network_model->loopback_);
xbt_graph_new_edge(routeGraph_, node, node, e_route);
}
xbt_graph_new_edge(routeGraph_, src, dst, e_route);
}
-void DijkstraZone::getLocalRoute(NetCard* src, NetCard* dst, sg_platf_route_cbarg_t route, double* lat)
+void DijkstraZone::getLocalRoute(NetPoint* src, NetPoint* dst, sg_platf_route_cbarg_t route, double* lat)
{
getRouteCheckParams(src, dst);
int src_id = src->id();
for (auto link : *e_route->link_list) {
route->link_list->insert(route->link_list->begin(), link);
if (lat)
- *lat += static_cast<Link*>(link)->latency();
+ *lat += static_cast<surf::LinkImpl*>(link)->latency();
}
}
}
/* compose route path with links */
- NetCard *gw_src = nullptr, *gw_dst, *prev_gw_src, *first_gw = nullptr;
- NetCard *gw_dst_net_elm = nullptr, *prev_gw_src_net_elm = nullptr;
+ NetPoint *gw_src = nullptr, *gw_dst, *prev_gw_src, *first_gw = nullptr;
+ NetPoint *gw_dst_net_elm = nullptr, *prev_gw_src_net_elm = nullptr;
for (int v = dst_node_id; v != src_node_id; v = pred_arr[v]) {
xbt_node_t node_pred_v = xbt_dynar_get_as(nodes, pred_arr[v], xbt_node_t);
if (hierarchy_ == RoutingMode::recursive && v != dst_node_id &&
strcmp(gw_dst->name().c_str(), prev_gw_src->name().c_str())) {
- std::vector<Link*>* e_route_as_to_as = new std::vector<Link*>();
+ std::vector<surf::LinkImpl*> e_route_as_to_as;
- getGlobalRoute(gw_dst_net_elm, prev_gw_src_net_elm, e_route_as_to_as, nullptr);
+ getGlobalRoute(gw_dst_net_elm, prev_gw_src_net_elm, &e_route_as_to_as, nullptr);
auto pos = route->link_list->begin();
- for (auto link : *e_route_as_to_as) {
+ for (auto link : e_route_as_to_as) {
route->link_list->insert(pos, link);
if (lat)
*lat += link->latency();
for (auto link : *e_route->link_list) {
route->link_list->insert(route->link_list->begin(), link);
if (lat)
- *lat += static_cast<Link*>(link)->latency();
+ *lat += static_cast<surf::LinkImpl*>(link)->latency();
}
size++;
}
void DijkstraZone::addRoute(sg_platf_route_cbarg_t route)
{
- NetCard* src = route->src;
- NetCard* dst = route->dst;
+ NetPoint* src = route->src;
+ NetPoint* dst = route->dst;
const char* srcName = src->name().c_str();
const char* dstName = dst->name().c_str();
route->gw_src->name().c_str());
if (route->gw_dst && route->gw_src) {
- NetCard* gw_tmp = route->gw_src;
+ NetPoint* gw_tmp = route->gw_src;
route->gw_src = route->gw_dst;
route->gw_dst = gw_tmp;
}