Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
small cosmetics advised by sonar
[simgrid.git] / src / kernel / routing / FatTreeZone.cpp
index 97c57d3..7a0222a 100644 (file)
@@ -21,12 +21,12 @@ namespace simgrid {
 namespace kernel {
 namespace routing {
 
-AsClusterFatTree::AsClusterFatTree(As* father, const char* name) : AsCluster(father, name)
+FatTreeZone::FatTreeZone(NetZone* father, const char* name) : ClusterZone(father, name)
 {
   XBT_DEBUG("Creating a new fat tree.");
 }
 
-AsClusterFatTree::~AsClusterFatTree()
+FatTreeZone::~FatTreeZone()
 {
   for (unsigned int i = 0; i < this->nodes_.size(); i++) {
     delete this->nodes_[i];
@@ -36,7 +36,7 @@ AsClusterFatTree::~AsClusterFatTree()
   }
 }
 
-bool AsClusterFatTree::isInSubTree(FatTreeNode* root, FatTreeNode* node)
+bool FatTreeZone::isInSubTree(FatTreeNode* root, FatTreeNode* node)
 {
   XBT_DEBUG("Is %d(%u,%u) in the sub tree of %d(%u,%u) ?", node->id, node->level, node->position, root->id, root->level,
             root->position);
@@ -57,7 +57,7 @@ bool AsClusterFatTree::isInSubTree(FatTreeNode* root, FatTreeNode* node)
   return true;
 }
 
-void AsClusterFatTree::getLocalRoute(NetCard* src, NetCard* dst, sg_platf_route_cbarg_t into, double* latency)
+void FatTreeZone::getLocalRoute(NetCard* src, NetCard* dst, sg_platf_route_cbarg_t into, double* latency)
 {
 
   if (dst->isRouter() || src->isRouter())
@@ -129,7 +129,7 @@ void AsClusterFatTree::getLocalRoute(NetCard* src, NetCard* dst, sg_platf_route_
 /* This function makes the assumption that parse_specific_arguments() and
  * addNodes() have already been called
  */
-void AsClusterFatTree::seal()
+void FatTreeZone::seal()
 {
   if (this->levels_ == 0) {
     return;
@@ -175,7 +175,7 @@ void AsClusterFatTree::seal()
   }
 }
 
-int AsClusterFatTree::connectNodeToParents(FatTreeNode* node)
+int FatTreeZone::connectNodeToParents(FatTreeNode* node)
 {
   std::vector<FatTreeNode*>::iterator currentParentNode = this->nodes_.begin();
   int connectionsNumber                                 = 0;
@@ -199,7 +199,7 @@ int AsClusterFatTree::connectNodeToParents(FatTreeNode* node)
   return connectionsNumber;
 }
 
-bool AsClusterFatTree::areRelated(FatTreeNode* parent, FatTreeNode* child)
+bool FatTreeZone::areRelated(FatTreeNode* parent, FatTreeNode* child)
 {
   std::stringstream msgBuffer;
 
@@ -231,11 +231,10 @@ bool AsClusterFatTree::areRelated(FatTreeNode* parent, FatTreeNode* child)
   return true;
 }
 
-void AsClusterFatTree::generateSwitches()
+void FatTreeZone::generateSwitches()
 {
   XBT_DEBUG("Generating switches.");
   this->nodesByLevel_.resize(this->levels_ + 1, 0);
-  unsigned int nodesRequired = 0;
 
   // Take care of the number of nodes by level
   this->nodesByLevel_[0] = 1;
@@ -259,7 +258,6 @@ void AsClusterFatTree::generateSwitches()
       nodesInThisLevel *= this->lowerLevelNodesNumber_[j];
 
     this->nodesByLevel_[i + 1] = nodesInThisLevel;
-    nodesRequired += nodesInThisLevel;
   }
 
   // Create the switches
@@ -278,7 +276,7 @@ void AsClusterFatTree::generateSwitches()
   }
 }
 
-void AsClusterFatTree::generateLabels()
+void FatTreeZone::generateLabels()
 {
   XBT_DEBUG("Generating labels.");
   // TODO : check if nodesByLevel and nodes are filled
@@ -324,7 +322,7 @@ void AsClusterFatTree::generateLabels()
   }
 }
 
-int AsClusterFatTree::getLevelPosition(const unsigned int level)
+int FatTreeZone::getLevelPosition(const unsigned int level)
 {
   xbt_assert(level <= this->levels_, "The impossible did happen. Yet again.");
   int tempPosition = 0;
@@ -335,7 +333,7 @@ int AsClusterFatTree::getLevelPosition(const unsigned int level)
   return tempPosition;
 }
 
-void AsClusterFatTree::addProcessingNode(int id)
+void FatTreeZone::addProcessingNode(int id)
 {
   using std::make_pair;
   static int position = 0;
@@ -347,7 +345,7 @@ void AsClusterFatTree::addProcessingNode(int id)
   this->nodes_.push_back(newNode);
 }
 
-void AsClusterFatTree::addLink(FatTreeNode* parent, unsigned int parentPort, FatTreeNode* child, unsigned int childPort)
+void FatTreeZone::addLink(FatTreeNode* parent, unsigned int parentPort, FatTreeNode* child, unsigned int childPort)
 {
   FatTreeLink* newLink;
   newLink = new FatTreeLink(this->cluster_, child, parent);
@@ -359,7 +357,7 @@ void AsClusterFatTree::addLink(FatTreeNode* parent, unsigned int parentPort, Fat
   this->links_.push_back(newLink);
 }
 
-void AsClusterFatTree::parse_specific_arguments(sg_platf_cluster_cbarg_t cluster)
+void FatTreeZone::parse_specific_arguments(sg_platf_cluster_cbarg_t cluster)
 {
   std::vector<std::string> parameters;
   std::vector<std::string> tmp;
@@ -406,7 +404,7 @@ void AsClusterFatTree::parse_specific_arguments(sg_platf_cluster_cbarg_t cluster
   this->cluster_ = cluster;
 }
 
-void AsClusterFatTree::generateDotFile(const std::string& filename) const
+void FatTreeZone::generateDotFile(const std::string& filename) const
 {
   std::ofstream file;
   file.open(filename, std::ios::out | std::ios::trunc);
@@ -440,7 +438,7 @@ FatTreeNode::FatTreeNode(sg_platf_cluster_cbarg_t cluster, int id, int level, in
     linkTemplate.id        = bprintf("limiter_%d", id);
     sg_platf_new_link(&linkTemplate);
     this->limiterLink = Link::byName(linkTemplate.id);
-    free((void*)linkTemplate.id);
+    free(const_cast<char*>(linkTemplate.id));
   }
   if (cluster->loopback_bw || cluster->loopback_lat) {
     memset(&linkTemplate, 0, sizeof(linkTemplate));
@@ -450,7 +448,7 @@ FatTreeNode::FatTreeNode(sg_platf_cluster_cbarg_t cluster, int id, int level, in
     linkTemplate.id        = bprintf("loopback_%d", id);
     sg_platf_new_link(&linkTemplate);
     this->loopback = Link::byName(linkTemplate.id);
-    free((void*)linkTemplate.id);
+    free(const_cast<char*>(linkTemplate.id));
   }
 }
 
@@ -465,22 +463,18 @@ FatTreeLink::FatTreeLink(sg_platf_cluster_cbarg_t cluster, FatTreeNode* downNode
   linkTemplate.policy    = cluster->sharing_policy; // sthg to do with that ?
   linkTemplate.id        = bprintf("link_from_%d_to_%d_%d", downNode->id, upNode->id, uniqueId);
   sg_platf_new_link(&linkTemplate);
-  Link* link;
-  std::string tmpID;
+
   if (cluster->sharing_policy == SURF_LINK_FULLDUPLEX) {
-    tmpID          = std::string(linkTemplate.id) + "_UP";
-    link           = Link::byName(tmpID.c_str());
-    this->upLink   = link; // check link?
+    std::string tmpID = std::string(linkTemplate.id) + "_UP";
+    this->upLink      = Link::byName(tmpID.c_str()); // check link?
     tmpID          = std::string(linkTemplate.id) + "_DOWN";
-    link           = Link::byName(tmpID.c_str());
-    this->downLink = link; // check link ?
+    this->downLink    = Link::byName(tmpID.c_str()); // check link ?
   } else {
-    link           = Link::byName(linkTemplate.id);
-    this->upLink   = link;
-    this->downLink = link;
+    this->upLink   = Link::byName(linkTemplate.id);
+    this->downLink = this->upLink;
   }
+  free(const_cast<char*>(linkTemplate.id));
   uniqueId++;
-  free((void*)linkTemplate.id);
 }
 }
 }