Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Minor Sonar smells (const, etc).
[simgrid.git] / src / kernel / routing / DragonflyZone.cpp
index 6fbc551..ce0f59b 100644 (file)
@@ -141,25 +141,18 @@ void DragonflyZone::generate_routers()
 }
 
 void DragonflyZone::generate_link(const std::string& id, int numlinks, resource::LinkImpl** linkup,
-                                  resource::LinkImpl** linkdown) const
+                                  resource::LinkImpl** linkdown)
 {
+  XBT_DEBUG("Generating link %s", id.c_str());
   *linkup   = nullptr;
   *linkdown = nullptr;
-  LinkCreationArgs linkTemplate;
-  linkTemplate.bandwidths.push_back(this->bw_ * numlinks);
-  linkTemplate.latency = this->lat_;
-  linkTemplate.policy  = this->sharing_policy_;
-  linkTemplate.id      = id;
-  sg_platf_new_link(&linkTemplate);
-  XBT_DEBUG("Generating link %s", linkTemplate.id.c_str());
-  resource::LinkImpl* link;
-  if (this->sharing_policy_ == s4u::Link::SharingPolicy::SPLITDUPLEX) {
-    *linkup   = s4u::Link::by_name(linkTemplate.id + "_UP")->get_impl();   // check link?
-    *linkdown = s4u::Link::by_name(linkTemplate.id + "_DOWN")->get_impl(); // check link ?
+  if (sharing_policy_ == s4u::Link::SharingPolicy::SPLITDUPLEX) {
+    *linkup   = create_link(id + "_UP", std::vector<double>{bw_ * numlinks})->set_latency(lat_)->seal()->get_impl();
+    *linkdown = create_link(id + "_DOWN", std::vector<double>{bw_ * numlinks})->set_latency(lat_)->seal()->get_impl();
+
   } else {
-    link      = s4u::Link::by_name(linkTemplate.id)->get_impl();
-    *linkup   = link;
-    *linkdown = link;
+    *linkup   = create_link(id, std::vector<double>{bw_ * numlinks})->set_latency(lat_)->seal()->get_impl();
+    *linkdown = *linkup;
   }
 }
 
@@ -348,7 +341,7 @@ void DragonflyZone::get_local_route(NetPoint* src, NetPoint* dst, RouteCreationA
 } // namespace kernel
 
 namespace s4u {
-NetZone* createDragonflyZone(const std::string& name)
+NetZone* create_dragonfly_zone(const std::string& name)
 {
   return (new kernel::routing::DragonflyZone(name))->get_iface();
 }