Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
cleanup after the split of kernel/resource/profile into several classes
[simgrid.git] / src / kernel / resource / profile / Profile.cpp
index 73f2962..288d618 100644 (file)
@@ -3,14 +3,17 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include "xbt/log.h"
-#include "xbt/sysdep.h"
-#include <ostream>
 #include "src/kernel/resource/profile/Profile.hpp"
-#include <boost/algorithm/string.hpp>
-#include "src/kernel/resource/profile/FutureEvtSet.cpp"
-#include "src/kernel/resource/profile/DatedValue.cpp"
 #include "simgrid/forward.h"
+#include "src/kernel/resource/profile/DatedValue.hpp"
+#include "src/kernel/resource/profile/Event.hpp"
+#include "src/kernel/resource/profile/FutureEvtSet.hpp"
+#include "src/surf/surf_interface.hpp"
+
+#include <boost/algorithm/string.hpp>
+#include <fstream>
+#include <ostream>
+#include <unordered_map>
 #include <vector>
 
 static std::unordered_map<std::string, simgrid::kernel::profile::Profile*> trace_list;
@@ -25,7 +28,7 @@ Profile::Profile()
   DatedValue val(0, -1);
   event_list.push_back(val);
 }
-Profile::~Profile()          = default;
+Profile::~Profile() = default;
 
 /** @brief Register this profile for that resource onto that FES,
  * and get an iterator over the integrated trace  */
@@ -122,7 +125,22 @@ Profile* Profile::from_file(const std::string& path)
 
   return Profile::from_string(path, buffer.str(), -1);
 }
-       
+
 } // namespace profile
 } // namespace kernel
 } // namespace simgrid
+
+void tmgr_finalize()
+{
+  for (auto const& kv : trace_list)
+    delete kv.second;
+  trace_list.clear();
+}
+
+void tmgr_trace_event_unref(simgrid::kernel::profile::Event** event)
+{
+  if ((*event)->free_me) {
+    delete *event;
+    *event = nullptr;
+  }
+}