Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove all xbt_assert.*(0,FALSE or NULL for xbt_die
[simgrid.git] / src / surf / gtnets / gtnets_topology.cc
index 05c1f65..7df843c 100644 (file)
@@ -9,11 +9,12 @@
 //Temporary classes for generating GTNetS topology
 
 #include "gtnets_topology.h"
-#ifdef DEBUG0
-       #undef DEBUG0
+#ifdef XBT_DEBUG
+       #undef XBT_DEBUG
 #endif
 #include "xbt/log.h"
 #include "xbt/asserts.h"
+#include <stdio.h> //for fflush in print_topology
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_network_gtnets_topology, surf_network_gtnets,
                                 "Logging specific to the SURF network GTNetS simulator");
@@ -46,7 +47,10 @@ int GTNETS_Node::add_host(int hostid){
 // return -1.
 int GTNETS_Node::add_router(int routerid){
   xbt_assert0(!(hosts_.size() > 1), "Router node should have only one router");
-  xbt_assert1(((hosts_.size() == 1)&&(hosts_.find(routerid) != hosts_.end())), "Node %d is a different router", routerid);
+  if (hosts_.size() == 1){
+         xbt_assert1((hosts_.find(routerid) != hosts_.end()), "Node %d is a different router", routerid);
+         return 0;
+  }
   is_router_ = true;
   hosts_.insert(routerid);
   return 0;
@@ -64,7 +68,7 @@ bool GTNETS_Node::include(int hostid){
 void GTNETS_Node::print_hosts(){
   set<int>::iterator it;
   for (it = hosts_.begin(); it != hosts_.end(); it++){
-    DEBUG1("      host id %d", *it);
+    XBT_DEBUG("host id %d", *it);
   }
 }
 
@@ -92,15 +96,13 @@ GTNETS_Link::~GTNETS_Link(){
 }
 
 void GTNETS_Link::print_link_status(){
-  DEBUG1("  link id: %d", ID_);
+  XBT_DEBUG("****** link id: %d", ID_);
   if (src_node_){
-    DEBUG2("    [src] id: %d, is it router?: %d, host list: ",src_node_->id(), src_node_->is_router());
-    src_node_->print_hosts();
+    XBT_DEBUG("[src] id: %d, is it router?: %d",src_node_->id(), src_node_->is_router());
   }
 
   if (dst_node_){
-    DEBUG2("    [dst] id: %d, is it router?: %d, host list: ",dst_node_->id(), dst_node_->is_router());
-    dst_node_->print_hosts();
+    XBT_DEBUG("[dst] id: %d, is it router?: %d",dst_node_->id(), dst_node_->is_router());
   }
 }
 
@@ -177,8 +179,11 @@ int GTNETS_Topology::add_link(int id){
 
 int GTNETS_Topology::add_router(int id){
   set<int>::iterator iter = routers_.find(id);
-  xbt_assert1((iter == routers_.end()), "Router %d already exists", id);
-  routers_.insert(id);
+  if(iter == routers_.end()){
+         routers_.insert(id);
+  }else{
+         XBT_DEBUG("Router (#%d) already exists", id);
+  }
   return 0;
 }
 
@@ -208,23 +213,15 @@ int GTNETS_Topology::add_onehop_route(int src, int dst, int linkid){
   xbt_assert1(!(iter == links_.end()), "Link %d not found", linkid);
   link = iter->second;
 
-  DEBUG4("Add onehop route, src: %d, dst: %d, linkid: %d, %d",src, dst, linkid, link->id());
+  XBT_DEBUG("Add onehop route, src (#%d), dst (#%d), linkid %d:(#%d)",src, dst, linkid, link->id());
 
   GTNETS_Node *src_node, *dst_node;
   src_node = link->src_node();
   dst_node = link->dst_node();
 
-  if (XBT_LOG_ISENABLED(surf_network_gtnets_topology, xbt_log_priority_debug)) {
-    link->print_link_status();
-    src_node->print_hosts();
-    dst_node->print_hosts();
-  }
-
-  xbt_assert0((src_node && dst_node), "Either src or dst is null");
-
   // If not exists a route, add one.
   if (!link->route_exists()){
-    //check whether there exists a node for the src host/router.
+    //check whether there exists a node for the src.
     int s_node_id = nodeid_from_hostid(src);
     int node_id;
 
@@ -260,6 +257,8 @@ int GTNETS_Topology::add_onehop_route(int src, int dst, int linkid){
       nodes_[d_node_id]->add_host(dst);
 
     link->add_dst(nodes_[d_node_id]);
+  }else if (!(src_node && dst_node)){
+      xbt_assert0((src_node && dst_node), "Either src or dst is null");
   }
 
   // case 1: link has two routers
@@ -275,7 +274,7 @@ int GTNETS_Topology::add_onehop_route(int src, int dst, int linkid){
   // case 2: link has one router and one host
   else if (src_node->is_router() && !dst_node->is_router()){
     int newsrc, newdst;
-    xbt_assert0( ((is_router(src))||(is_router(dst))), "one of nodes should be a router");
+    xbt_assert0( ((is_router(src))||(is_router(dst))), "One of nodes should be a router");
 
     if (is_router(src)){
       newsrc = src;
@@ -359,8 +358,9 @@ int GTNETS_Topology::add_onehop_route(int src, int dst, int linkid){
       
   }
   else{
-    xbt_assert0(0, "Shouldn't be here");
+    xbt_die("Shouldn't be here");
   }
+
   return 0;
 }
 
@@ -372,13 +372,13 @@ int GTNETS_Topology::nodeid_from_hostid(int hostid){
 }
 
 void GTNETS_Topology::print_topology(){
-  DEBUG0("<<<<<================================>>>>>");
-  DEBUG0("Dumping GTNETS topollogy information");
+  XBT_DEBUG("<<<<<================================>>>>>");
+  XBT_DEBUG("Dumping GTNETS topollogy information");
   map<int, GTNETS_Link*>::iterator it;
   for (it = links_.begin(); it != links_.end(); it++){
     it->second->print_link_status();
   }
-  DEBUG0(">>>>>================================<<<<<");
+  XBT_DEBUG(">>>>>================================<<<<<");
   fflush(NULL);
 }