+static void on_entity_value_creation(const EntityValue& value)
+{
+ std::stringstream stream;
+ XBT_DEBUG("%s: event_type=%u", __func__, PAJE_DefineEntityValue);
+ stream << std::fixed << std::setprecision(trace_precision) << PAJE_DefineEntityValue;
+ stream << " " << value.get_id() << " " << value.get_father()->get_id() << " " << value.get_name();
+ if (not value.get_color().empty())
+ stream << " \"" << value.get_color() << "\"";
+ XBT_DEBUG("Dump %s", stream.str().c_str());
+ tracing_file << stream.str() << std::endl;
+}
+
+static void on_event_creation(PajeEvent& event)
+{
+ XBT_DEBUG("%s: event_type=%u, timestamp=%.*f", __func__, event.eventType_, trace_precision, event.timestamp_);
+ event.stream_ << std::fixed << std::setprecision(trace_precision);
+ event.stream_ << event.eventType_ << " " << event.timestamp_ << " ";
+ event.stream_ << event.get_type()->get_id() << " " << event.get_container()->get_id();
+}
+
+static void on_event_destruction(const PajeEvent& event)
+{
+ XBT_DEBUG("Dump %s", event.stream_.str().c_str());
+ tracing_file << event.stream_.str() << std::endl;
+}
+
+static void on_state_event_destruction(const StateEvent& event)
+{
+ if (event.has_extra())
+ *tracing_files.at(event.get_container()) << event.stream_.str() << std::endl;
+}
+
+static void on_type_creation(const Type& type, e_event_type event_type)
+{
+ if (event_type == PAJE_DefineLinkType)
+ return; // this kind of type has to be handled differently
+
+ std::stringstream stream;
+ stream << std::fixed << std::setprecision(trace_precision);
+ XBT_DEBUG("%s: event_type=%u, timestamp=%.*f", __func__, event_type, trace_precision, 0.);
+ stream << event_type << " " << type.get_id() << " " << type.get_father()->get_id() << " " << type.get_name();
+ if (type.is_colored())
+ stream << " \"" << type.get_color() << "\"";
+ XBT_DEBUG("Dump %s", stream.str().c_str());
+ tracing_file << stream.str() << std::endl;
+}
+
+static void on_link_type_creation(const Type& type, const Type& source, const Type& dest)
+{
+ std::stringstream stream;
+ XBT_DEBUG("%s: event_type=%u, timestamp=%.*f", __func__, PAJE_DefineLinkType, trace_precision, 0.);
+ stream << PAJE_DefineLinkType << " " << type.get_id() << " " << type.get_father()->get_id();
+ stream << " " << source.get_id() << " " << dest.get_id() << " " << type.get_name();
+ XBT_DEBUG("Dump %s", stream.str().c_str());
+ tracing_file << stream.str() << std::endl;
+}
+