Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
move some of the file mgmt logic out of the storage model
[simgrid.git] / src / kernel / routing / FatTreeZone.cpp
index 7a0222a..a364180 100644 (file)
@@ -5,13 +5,12 @@
 
 #include <fstream>
 #include <sstream>
+#include <string>
 
 #include "src/kernel/routing/FatTreeZone.hpp"
-#include "src/kernel/routing/NetCard.hpp"
+#include "src/kernel/routing/NetPoint.hpp"
 #include "src/surf/network_interface.hpp"
 
-#include "xbt/lib.h"
-
 #include <boost/algorithm/string/classification.hpp>
 #include <boost/algorithm/string/split.hpp>
 
@@ -57,7 +56,7 @@ bool FatTreeZone::isInSubTree(FatTreeNode* root, FatTreeNode* node)
   return true;
 }
 
-void FatTreeZone::getLocalRoute(NetCard* src, NetCard* dst, sg_platf_route_cbarg_t into, double* latency)
+void FatTreeZone::getLocalRoute(NetPoint* src, NetPoint* dst, sg_platf_route_cbarg_t into, double* latency)
 {
 
   if (dst->isRouter() || src->isRouter())
@@ -88,7 +87,7 @@ void FatTreeZone::getLocalRoute(NetCard* src, NetCard* dst, sg_platf_route_cbarg
   FatTreeNode* currentNode = source;
 
   // up part
-  while (!isInSubTree(currentNode, destination)) {
+  while (not isInSubTree(currentNode, destination)) {
     int d = destination->position; // as in d-mod-k
 
     for (unsigned int i = 0; i < currentNode->level; i++)
@@ -429,26 +428,22 @@ void FatTreeZone::generateDotFile(const std::string& filename) const
 FatTreeNode::FatTreeNode(sg_platf_cluster_cbarg_t cluster, int id, int level, int position)
     : id(id), level(level), position(position)
 {
-  s_sg_platf_link_cbarg_t linkTemplate;
+  LinkCreationArgs linkTemplate;
   if (cluster->limiter_link) {
-    memset(&linkTemplate, 0, sizeof(linkTemplate));
     linkTemplate.bandwidth = cluster->limiter_link;
     linkTemplate.latency   = 0;
     linkTemplate.policy    = SURF_LINK_SHARED;
-    linkTemplate.id        = bprintf("limiter_%d", id);
+    linkTemplate.id        = "limiter_"+std::to_string(id);
     sg_platf_new_link(&linkTemplate);
-    this->limiterLink = Link::byName(linkTemplate.id);
-    free(const_cast<char*>(linkTemplate.id));
+    this->limiterLink = surf::LinkImpl::byName(linkTemplate.id.c_str());
   }
   if (cluster->loopback_bw || cluster->loopback_lat) {
-    memset(&linkTemplate, 0, sizeof(linkTemplate));
     linkTemplate.bandwidth = cluster->loopback_bw;
     linkTemplate.latency   = cluster->loopback_lat;
     linkTemplate.policy    = SURF_LINK_FATPIPE;
-    linkTemplate.id        = bprintf("loopback_%d", id);
+    linkTemplate.id        = "loopback_"+ std::to_string(id);
     sg_platf_new_link(&linkTemplate);
-    this->loopback = Link::byName(linkTemplate.id);
-    free(const_cast<char*>(linkTemplate.id));
+    this->loopback = surf::LinkImpl::byName(linkTemplate.id.c_str());
   }
 }
 
@@ -456,24 +451,23 @@ FatTreeLink::FatTreeLink(sg_platf_cluster_cbarg_t cluster, FatTreeNode* downNode
     : upNode(upNode), downNode(downNode)
 {
   static int uniqueId = 0;
-  s_sg_platf_link_cbarg_t linkTemplate;
-  memset(&linkTemplate, 0, sizeof(linkTemplate));
+  LinkCreationArgs linkTemplate;
   linkTemplate.bandwidth = cluster->bw;
   linkTemplate.latency   = cluster->lat;
   linkTemplate.policy    = cluster->sharing_policy; // sthg to do with that ?
-  linkTemplate.id        = bprintf("link_from_%d_to_%d_%d", downNode->id, upNode->id, uniqueId);
+  linkTemplate.id =
+      "link_from_" + std::to_string(downNode->id) + "_" + std::to_string(upNode->id) + "_" + std::to_string(uniqueId);
   sg_platf_new_link(&linkTemplate);
 
   if (cluster->sharing_policy == SURF_LINK_FULLDUPLEX) {
     std::string tmpID = std::string(linkTemplate.id) + "_UP";
-    this->upLink      = Link::byName(tmpID.c_str()); // check link?
+    this->upLink      = surf::LinkImpl::byName(tmpID.c_str()); // check link?
     tmpID          = std::string(linkTemplate.id) + "_DOWN";
-    this->downLink    = Link::byName(tmpID.c_str()); // check link ?
+    this->downLink    = surf::LinkImpl::byName(tmpID.c_str()); // check link ?
   } else {
-    this->upLink   = Link::byName(linkTemplate.id);
+    this->upLink   = surf::LinkImpl::byName(linkTemplate.id.c_str());
     this->downLink = this->upLink;
   }
-  free(const_cast<char*>(linkTemplate.id));
   uniqueId++;
 }
 }