Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
small cosmetics advised by sonar
[simgrid.git] / teshsuite / surf / trace_usage / trace_usage.cpp
index 3cb5899..07441cf 100644 (file)
@@ -7,49 +7,50 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "surf/surf.h"
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "surf/surf.h"
-
 #include "xbt/log.h"
 #include "xbt/log.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
+#include "src/surf/network_interface.hpp"
 #include "src/surf/trace_mgr.hpp"
 
 #include "src/surf/trace_mgr.hpp"
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test,
-                             "Messages specific for surf example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test, "Messages specific for surf example");
+
+class DummyTestResource
+    : public simgrid::surf::Resource {
+public:
+  explicit DummyTestResource(const char* name) : Resource(nullptr, name, nullptr) {}
+  bool isUsed() override {return false;}
+  void apply_event(tmgr_trace_iterator_t it, double value) override {}
+};
 
 
-static void test(void)
+int main(int argc, char **argv)
 {
 {
+  surf_init(&argc, argv);
+
   simgrid::trace_mgr::future_evt_set *fes = new simgrid::trace_mgr::future_evt_set();
   tmgr_trace_t trace_A = tmgr_trace_new_from_file("trace_A.txt");
   tmgr_trace_t trace_B = tmgr_trace_new_from_file("trace_B.txt");
   simgrid::trace_mgr::future_evt_set *fes = new simgrid::trace_mgr::future_evt_set();
   tmgr_trace_t trace_A = tmgr_trace_new_from_file("trace_A.txt");
   tmgr_trace_t trace_B = tmgr_trace_new_from_file("trace_B.txt");
-  double next_event_date = -1.0;
   double value = -1.0;
   double value = -1.0;
-  char *resource = NULL;
-  char *host_A = strdup("Host A");
-  char *host_B = strdup("Host B");
-
-  fes->add_trace(trace_A, 1.0, host_A);
-  fes->add_trace(trace_B, 0.0, host_B);
-
-  while ((next_event_date = fes->next_date()) != -1.0) {
-    XBT_DEBUG("%g" " : \n", next_event_date);
-    while (fes->pop_leq(next_event_date, &value, (void **) &resource)) {
-      XBT_DEBUG("\t %s : " "%g" "\n", resource, value);
+  simgrid::surf::Resource *resource = nullptr;
+  simgrid::surf::Resource *hostA = new DummyTestResource("Host A");
+  simgrid::surf::Resource *hostB = new DummyTestResource("Host B");
+
+  fes->add_trace(trace_A, 1.0, hostA);
+  fes->add_trace(trace_B, 0.0, hostB);
+
+  double next_event_date = fes->next_date();
+  while (next_event_date > -1.0) {
+    XBT_INFO("%g:", next_event_date);
+    while (fes->pop_leq(next_event_date, &value, &resource)) {
+      XBT_INFO("   %s: %g", resource->getName(), value);
     }
     }
-    if (next_event_date > 1000)
+    if (next_event_date > 100)
       break;
       break;
+    next_event_date = fes->next_date();
   }
 
   delete fes;
   }
 
   delete fes;
-  free(host_B);
-  free(host_A);
-}
+  delete hostA;
+  delete hostB;
 
 
-int main(int argc, char **argv)
-{
-  surf_init(&argc, argv);
-  test();
   surf_exit();
   return 0;
 }
   surf_exit();
   return 0;
 }