Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
less char*, more std::string
[simgrid.git] / src / kernel / routing / AsVivaldi.cpp
index c25b4e0..57c48cb 100644 (file)
@@ -28,7 +28,7 @@ namespace routing {
     char *tmp_name;
 
     if(nc->isHost()){
-      tmp_name = bprintf("peer_%s", nc->name());
+      tmp_name                 = bprintf("peer_%s", nc->name().c_str());
       simgrid::s4u::Host *host = simgrid::s4u::Host::by_name_or_null(tmp_name);
       if (host == nullptr)
         host = simgrid::s4u::Host::by_name_or_null(nc->name());
@@ -36,7 +36,7 @@ namespace routing {
         res = (xbt_dynar_t) host->extension(COORD_HOST_LEVEL);
     }
     else if(nc->isRouter() || nc->isAS()){
-      tmp_name = bprintf("router_%s", nc->name());
+      tmp_name = bprintf("router_%s", nc->name().c_str());
       res = (xbt_dynar_t) xbt_lib_get_or_null(as_router_lib, tmp_name, COORD_ASR_LEVEL);
     }
     else{
@@ -48,40 +48,40 @@ namespace routing {
 
     return res;
   }
-  AsVivaldi::AsVivaldi(const char *name)
-    : AsCluster(name)
+  AsVivaldi::AsVivaldi(As* father, const char* name) : AsCluster(father, name)
   {}
 
 AsVivaldi::~AsVivaldi() {}
 
 void AsVivaldi::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t route, double *lat)
 {
-  XBT_DEBUG("vivaldi_get_route_and_latency from '%s'[%d] '%s'[%d]", src->name(), src->id(), dst->name(), dst->id());
+  XBT_DEBUG("vivaldi_get_route_and_latency from '%s'[%d] '%s'[%d]", src->name().c_str(), src->id(), dst->name().c_str(),
+            dst->id());
 
   if(src->isAS()) {
-    char *src_name = bprintf("router_%s",src->name());
-    char *dst_name = bprintf("router_%s",dst->name());
-    route->gw_src = (sg_netcard_t) xbt_lib_get_or_null(as_router_lib, src_name, ROUTING_ASR_LEVEL);
-    route->gw_dst = (sg_netcard_t) xbt_lib_get_or_null(as_router_lib, dst_name, ROUTING_ASR_LEVEL);
-    xbt_free(src_name);
-    xbt_free(dst_name);
+    char* srcName = bprintf("router_%s", src->name().c_str());
+    char* dstName = bprintf("router_%s", dst->name().c_str());
+    route->gw_src = (sg_netcard_t)xbt_lib_get_or_null(as_router_lib, srcName, ROUTING_ASR_LEVEL);
+    route->gw_dst = (sg_netcard_t)xbt_lib_get_or_null(as_router_lib, dstName, ROUTING_ASR_LEVEL);
+    xbt_free(srcName);
+    xbt_free(dstName);
   }
 
   /* Retrieve the private links */
-  if ((int)xbt_dynar_length(privateLinks_) > src->id()) {
-    s_surf_parsing_link_up_down_t info = xbt_dynar_get_as(privateLinks_, src->id(), s_surf_parsing_link_up_down_t);
+  if (privateLinks_.size() > src->id()) {
+    s_surf_parsing_link_up_down_t info = privateLinks_.at(src->id());
     if(info.linkUp) {
       route->link_list->push_back(info.linkUp);
       if (lat)
-        *lat += info.linkUp->getLatency();
+        *lat += info.linkUp->latency();
     }
   }
-  if ((int)xbt_dynar_length(privateLinks_)>dst->id()) {
-    s_surf_parsing_link_up_down_t info = xbt_dynar_get_as(privateLinks_, dst->id(), s_surf_parsing_link_up_down_t);
+  if (privateLinks_.size() >dst->id()) {
+    s_surf_parsing_link_up_down_t info = privateLinks_.at(dst->id());
     if(info.linkDown) {
       route->link_list->push_back(info.linkDown);
       if (lat)
-        *lat += info.linkDown->getLatency();
+        *lat += info.linkDown->latency();
     }
   }