Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix simdag issue
[simgrid.git] / src / surf / surf_routing_cluster.cpp
index 12ecc7a..6bc1553 100644 (file)
@@ -22,11 +22,6 @@ AS_t model_cluster_create(void)
 /* Creation routing model functions */
 AsCluster::AsCluster() : AsNone()
 {
-  /*result->get_route_and_latency = cluster_get_route_and_latency;
-  result->finalize = model_cluster_finalize;
-  result->get_graph = cluster_get_graph;
-  result->parse_AS = cluster_parse_AS;
-  result->parse_PU = cluster_parse_PU;*/
 }
 
 /* Business methods */
@@ -42,7 +37,7 @@ void AsCluster::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_pl
     if((src->m_id == dst->m_id) && info.loopback_link  ){
       xbt_dynar_push_as(route->link_list, void *, info.loopback_link);
       if (lat)
-        *lat += static_cast<NetworkCm02LinkPtr>(info.loopback_link)->getLatency();
+        *lat += dynamic_cast<NetworkCm02LinkPtr>(static_cast<ResourcePtr>(info.loopback_link))->getLatency();
       return;
     }
 
@@ -53,14 +48,14 @@ void AsCluster::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_pl
     if (info.link_up) {         // link up
       xbt_dynar_push_as(route->link_list, void *, info.link_up);
       if (lat)
-        *lat += static_cast<NetworkCm02LinkPtr>(info.link_up)->getLatency();
+        *lat += dynamic_cast<NetworkCm02LinkPtr>(static_cast<ResourcePtr>(info.link_up))->getLatency();
     }
   }
 
   if (p_backbone) {
-    xbt_dynar_push_as(route->link_list, void *, p_backbone);
+    xbt_dynar_push_as(route->link_list, void *, static_cast<ResourcePtr>(p_backbone));
     if (lat)
-      *lat += static_cast<NetworkCm02LinkPtr>(p_backbone)->getLatency();
+      *lat += p_backbone->getLatency();
   }
 
   if (dst->p_rcType != SURF_NETWORK_ELEMENT_ROUTER) {    // No specific link for router
@@ -69,7 +64,7 @@ void AsCluster::getRouteAndLatency(RoutingEdgePtr src, RoutingEdgePtr dst, sg_pl
     if (info.link_down) {       // link down
       xbt_dynar_push_as(route->link_list, void *, info.link_down);
       if (lat)
-        *lat += static_cast<NetworkCm02LinkPtr>(info.link_down)->getLatency();
+        *lat += dynamic_cast<NetworkCm02LinkPtr>(static_cast<ResourcePtr>(info.link_down))->getLatency();
     }
 
     if (info.limiter_link)          // limiter for receiver