Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
use signals on PajeEvent creation/destruction
[simgrid.git] / src / instr / instr_paje_events.cpp
index 5161881..6ba97ee 100644 (file)
@@ -9,8 +9,6 @@
 #include "src/surf/surf_interface.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_paje_events, instr, "Paje tracing event system (events)");
-extern std::ofstream tracing_file;
-extern std::map<container_t, std::ofstream*> tracing_files; // TI specific
 
 namespace simgrid {
 namespace instr {
@@ -18,21 +16,13 @@ namespace instr {
 PajeEvent::PajeEvent(Container* container, Type* type, double timestamp, e_event_type eventType)
     : container_(container), type_(type), timestamp_(timestamp), eventType_(eventType)
 {
-  XBT_DEBUG("%s: event_type=%u, timestamp=%.*f", __func__, eventType_, trace_precision, timestamp_);
-  if (trace_format == TraceFormat::Paje) {
-    stream_ << std::fixed << std::setprecision(trace_precision);
-    stream_ << eventType_ << " " << timestamp_ << " " << type_->get_id() << " " << container_->get_id();
-  }
+  on_creation(*this);
   insert_into_buffer();
 }
 
-void PajeEvent::print()
+PajeEvent::~PajeEvent()
 {
-  if (trace_format != TraceFormat::Paje)
-    return;
-
-  XBT_DEBUG("Dump %s", stream_.str().c_str());
-  tracing_file << stream_.str() << std::endl;
+  on_destruction(*this);
 }
 
 StateEvent::StateEvent(Container* container, Type* type, e_event_type event_type, EntityValue* value, TIData* extra)
@@ -49,38 +39,15 @@ StateEvent::StateEvent(Container* container, Type* type, e_event_type event_type
 
 void NewEvent::print()
 {
-  if (trace_format != TraceFormat::Paje)
-    return;
-
   stream_ << " " << value->get_id();
-
-  XBT_DEBUG("Dump %s", stream_.str().c_str());
-  tracing_file << stream_.str() << std::endl;
 }
 
 void LinkEvent::print()
 {
-  if (trace_format != TraceFormat::Paje)
-    return;
-
   stream_ << " " << value_ << " " << endpoint_->get_id() << " " << key_;
 
   if (TRACE_display_sizes() && size_ != -1)
     stream_ << " " << size_;
-
-  XBT_DEBUG("Dump %s", stream_.str().c_str());
-  tracing_file << stream_.str() << std::endl;
-}
-
-void VariableEvent::print()
-{
-  if (trace_format != TraceFormat::Paje)
-    return;
-
-  stream_ << " " << value_;
-
-  XBT_DEBUG("Dump %s", stream_.str().c_str());
-  tracing_file << stream_.str() << std::endl;
 }
 
 void StateEvent::print()
@@ -93,12 +60,9 @@ void StateEvent::print()
       stream_ << " " << ((extra_ != nullptr) ? extra_->display_size() : "");
 
 #if HAVE_SMPI
-    if (simgrid::config::get_value<bool>("smpi/trace-call-location")) {
+    if (simgrid::config::get_value<bool>("smpi/trace-call-location"))
       stream_ << " \"" << filename << "\" " << linenumber;
-    }
 #endif
-    XBT_DEBUG("Dump %s", stream_.str().c_str());
-    tracing_file << stream_.str() << std::endl;
   } else if (trace_format == TraceFormat::Ti) {
     if (extra_ == nullptr)
       return;
@@ -111,12 +75,10 @@ void StateEvent::print()
       container_name=std::to_string(stoi(container_name.erase(0, 5)) - 1);
     }
 #if HAVE_SMPI
-    if (config::get_value<bool>("smpi/trace-call-location")) {
+    if (config::get_value<bool>("smpi/trace-call-location"))
       stream_ << container_name << " location " << filename << " " << linenumber << std::endl ;
-    }
 #endif
     stream_ << container_name << " " << extra_->print();
-    *tracing_files.at(get_container()) << stream_.str() << std::endl;
   } else {
     THROW_IMPOSSIBLE;
   }