+SetVariableEvent::SetVariableEvent (double timestamp, container_t container, type_t type, double value)
+{
+ this->event_type = PAJE_SetVariable;
+ this->timestamp = timestamp;
+ this->type = type;
+ this->container = container;
+ this->value = value;
+
+ XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event_type, this->timestamp);
+
+ insert_into_buffer (this);
+}
+
+void SetVariableEvent::print() {
+ XBT_DEBUG("%s: event_type=%d, timestamp=%.*f", __FUNCTION__, (int)event_type, TRACE_precision(), timestamp);
+ stream << std::fixed << std::setprecision(TRACE_precision());
+ stream << (int)this->event_type;
+ print_timestamp(this);
+ stream << " " << type->id
+ << " " << container->id
+ << " " << value;
+ print_row();
+}
+
+AddVariableEvent::AddVariableEvent (double timestamp, container_t container, type_t type, double value)
+{
+ this->event_type = PAJE_AddVariable;
+ this->timestamp = timestamp;
+ this->type = type;
+ this->container = container;
+ this->value = value;
+
+ XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event_type, this->timestamp);
+
+ insert_into_buffer (this);
+}
+
+void AddVariableEvent::print() {
+ XBT_DEBUG("%s: event_type=%d, timestamp=%.*f", __FUNCTION__, (int)event_type, TRACE_precision(), timestamp);
+ stream << std::fixed << std::setprecision(TRACE_precision());
+ stream << (int)this->event_type;
+ print_timestamp(this);
+ stream << " " << type->id
+ << " " << container->id
+ << " " << value;
+ print_row();
+}
+
+SubVariableEvent::SubVariableEvent (double timestamp, container_t container, type_t type, double value)
+{
+ this->event_type = PAJE_SubVariable;
+ this->timestamp = timestamp;
+ this->type = type;
+ this->container = container;
+ this->value = value;
+
+ XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event_type, this->timestamp);
+
+ insert_into_buffer (this);
+}
+
+void SubVariableEvent::print() {
+ XBT_DEBUG("%s: event_type=%d, timestamp=%.*f", __FUNCTION__, (int)event_type, TRACE_precision(), timestamp);
+ stream << std::fixed << std::setprecision(TRACE_precision());
+ stream << (int)this->event_type;
+ print_timestamp(this);
+ stream << " " << type->id
+ << " " << container->id
+ << " " << value;
+ print_row();
+}
+
+SetStateEvent::SetStateEvent (double timestamp, container_t container, type_t type, val_t value)
+{
+ this->event_type = PAJE_SetState;
+ this->timestamp = timestamp;
+ this->type = type;
+ this->container = container;
+ this->value = value;
+
+#if HAVE_SMPI
+ if (xbt_cfg_get_boolean("smpi/trace-call-location")) {
+ smpi_trace_call_location_t* loc = smpi_trace_get_call_location();
+ filename = loc->filename;
+ linenumber = loc->linenumber;
+ }
+#endif
+
+ XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event_type, this->timestamp);
+
+ insert_into_buffer (this);
+}
+
+void SetStateEvent::print() {
+ XBT_DEBUG("%s: event_type=%d, timestamp=%.*f", __FUNCTION__, (int)event_type, TRACE_precision(), timestamp);
+ stream << std::fixed << std::setprecision(TRACE_precision());
+ stream << (int)this->event_type;
+ print_timestamp(this);
+ stream << " " << type->id
+ << " " << container->id;
+ stream << " " <<value->id;
+#if HAVE_SMPI
+ if (xbt_cfg_get_boolean("smpi/trace-call-location")) {
+ stream << " \"" << filename
+ << "\" " << linenumber;
+ }
+#endif
+ print_row();
+}
+
+PushStateEvent::PushStateEvent (double timestamp, container_t container, type_t type, val_t value, void* extra)
+{
+ this->event_type = PAJE_PushState;
+ this->timestamp = timestamp;
+ this->type = type;
+ this->container = container;
+ this->value = value;
+ this->extra = extra;
+
+#if HAVE_SMPI
+ if (xbt_cfg_get_boolean("smpi/trace-call-location")) {
+ smpi_trace_call_location_t* loc = smpi_trace_get_call_location();
+ filename = loc->filename;
+ linenumber = loc->linenumber;
+ }
+#endif
+
+ XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event_type, this->timestamp);
+
+ insert_into_buffer (this);
+}
+
+PushStateEvent::PushStateEvent (double timestamp, container_t container, type_t type, val_t value)
+ : PushStateEvent(timestamp, container, type, value, nullptr)
+{}
+void PushStateEvent::print() {
+ XBT_DEBUG("%s: event_type=%d, timestamp=%.*f", __FUNCTION__, (int)event_type, TRACE_precision(), timestamp);
+ stream << std::fixed << std::setprecision(TRACE_precision());
+ stream << (int)this->event_type;
+ print_timestamp(this);
+ stream << " " << type->id
+ << " " << container->id;
+ stream << " " <<value->id;