Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Shut down the gtnets verbose output when advancing simulation clock to a given amount.
[simgrid.git] / src / surf / gtnets / gtnets_interface.cc
index 7ff053c..0d366a4 100644 (file)
@@ -7,8 +7,8 @@
 
 #include "gtnets_simulator.h"
 #include "gtnets_interface.h"
-#ifdef DEBUG0
-       #undef DEBUG0
+#ifdef XBT_DEBUG
+       #undef XBT_DEBUG
 #endif
 #include "xbt/log.h"
 #include "xbt/asserts.h"
@@ -22,13 +22,17 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_network_gtnets_interface, surf_network_gtne
 
 
 // initialize the GTNetS interface and environment
-int gtnets_initialize(){
-
-  DEBUG0("Using logging.");
-
-  xbt_assert0(!gtnets_sim, "gtnets already initialized");
+int gtnets_initialize(int wsize){
+  XBT_DEBUG("Using logging.");
+  xbt_assert(!gtnets_sim, "gtnets already initialized");
+
+  if(wsize > 0){
+       XBT_INFO("TCP window maximum size : %d", wsize);
+       gtnets_sim = new GTSim(wsize);
+  }else{
+       gtnets_sim = new GTSim(wsize);
+  }
 
-  gtnets_sim = new GTSim();
   return 0;
 }
 
@@ -74,9 +78,9 @@ double gtnets_get_time_to_next_flow_completion(){
          file.open ("/dev/null");
          sbuf = cout.rdbuf();
          cout.rdbuf(file.rdbuf());
-         DEBUG0("Enable GTNetS library quite mode");
+         XBT_DEBUG("Enable GTNetS library quite mode");
   }else {
-         DEBUG0("Disable GTNetS library quite mode");
+         XBT_DEBUG("Disable GTNetS library quite mode");
   }
 
   value = gtnets_sim->get_time_to_next_flow_completion();
@@ -89,7 +93,7 @@ double gtnets_get_time_to_next_flow_completion(){
 }
 
 // run until a flow completes (returns that flow's metadata)
-int gtnets_run_until_next_flow_completion(void ***metadata, int *number_of_flows){
+double gtnets_run_until_next_flow_completion(void ***metadata, int *number_of_flows){
   ofstream file;
   streambuf* sbuf;
   double value;
@@ -98,9 +102,9 @@ int gtnets_run_until_next_flow_completion(void ***metadata, int *number_of_flows
          file.open ("/dev/null");
          sbuf = cout.rdbuf();
          cout.rdbuf(file.rdbuf());
-         DEBUG0("Enable GTNetS library quite mode");
+         XBT_DEBUG("Enable GTNetS library quite mode");
   }else {
-         DEBUG0("Disable GTNetS library quite mode");
+         XBT_DEBUG("Disable GTNetS library quite mode");
   }
 
   value = gtnets_sim->run_until_next_flow_completion(metadata, number_of_flows);
@@ -109,7 +113,7 @@ int gtnets_run_until_next_flow_completion(void ***metadata, int *number_of_flows
          cout.rdbuf(sbuf);
          file.close();
   }
-  return value;
+  return (double) value;
 }
 
 // get the total received in bytes using the TCPServer object totRx field
@@ -120,7 +124,26 @@ double gtnets_get_flow_rx(void *metadata){
 
 // run for a given time (double)
 int gtnets_run(Time_t deltat){
+  ofstream file;
+  streambuf* sbuf;
+  double value;
+
+  if (!XBT_LOG_ISENABLED(surf_network_gtnets_interface, xbt_log_priority_debug)) {
+          file.open ("/dev/null");
+          sbuf = cout.rdbuf();
+          cout.rdbuf(file.rdbuf());
+          XBT_DEBUG("Enable GTNetS library quite mode");
+  }else {
+          XBT_DEBUG("Disable GTNetS library quite mode");
+  }
+
   gtnets_sim->run(deltat);
+
+
+  if (!XBT_LOG_ISENABLED(surf_network_gtnets_interface, xbt_log_priority_debug)) {
+          cout.rdbuf(sbuf);
+          file.close();
+  }
   return 0;
 }