+class DefineContainerEvent : public PajeEvent
+{
+ public:
+ type_t type;
+ void print() override;
+ DefineContainerEvent(type_t);
+};
+
+//--------------------------------------------------
+
+
+//--------------------------------------------------
+
+class DefineVariableTypeEvent : public PajeEvent
+{
+ public:
+ type_t type;
+ DefineVariableTypeEvent(type_t type);
+ void print() override;
+};
+//--------------------------------------------------
+
+class DefineStateTypeEvent : public PajeEvent {
+ type_t type;
+ public:
+ DefineStateTypeEvent(type_t type);
+ void print() override;
+};
+
+class DefineEventTypeEvent : public PajeEvent {
+ type_t type;
+ public:
+ DefineEventTypeEvent(type_t type);
+ void print() override;
+};
+
+class DefineLinkTypeEvent : public PajeEvent {
+ type_t type;
+ type_t source;
+ type_t dest;
+ public:
+ DefineLinkTypeEvent(type_t type, type_t source, type_t dest);
+ void print() override;
+};
+
+class DefineEntityValueEvent : public PajeEvent {
+ val_t value;
+ public:
+ DefineEntityValueEvent (val_t type);
+ void print() override;
+};
+
+class CreateContainerEvent : public PajeEvent {
+ public:
+ container_t container;
+ explicit CreateContainerEvent (container_t container);
+ void print() override;
+};
+
+class DestroyContainerEvent : public PajeEvent {
+ public:
+ container_t container;
+ DestroyContainerEvent (container_t container);
+ void print() override;
+};
+
+
+class SetVariableEvent : public PajeEvent {
+ container_t container;
+ type_t type;
+ double value;
+ public:
+ SetVariableEvent (double timestamp, container_t container, type_t type, double value);
+ void print() override;
+};
+
+
+class AddVariableEvent:public PajeEvent {
+ container_t container;
+ type_t type;
+ double value;
+ public:
+ AddVariableEvent (double timestamp, container_t container, type_t type, double value);
+ void print() override;
+};
+
+//--------------------------------------------------
+
+
+class SubVariableEvent : public PajeEvent {
+ public:
+ container_t container;
+ type_t type;
+ double value;
+ public:
+ SubVariableEvent(double timestamp, container_t container, type_t type, double value);
+ void print() override;
+};
+//--------------------------------------------------
+
+class SetStateEvent : public PajeEvent {
+ public:
+ container_t container;
+ type_t type;
+ val_t value;
+ const char* filename;
+ int linenumber;
+ public:
+ SetStateEvent (double timestamp, container_t container, type_t type, val_t value);
+ void print() override;
+};
+
+
+class PushStateEvent : public PajeEvent {
+ public:
+ container_t container;
+ type_t type;
+ val_t value;
+ int size;
+ const char* filename;
+ int linenumber;
+ void* extra_;
+ public:
+ PushStateEvent (double timestamp, container_t container, type_t type, val_t value);
+ PushStateEvent (double timestamp, container_t container, type_t type, val_t value,
+ void* extra);
+ void print() override;
+};
+
+class PopStateEvent : public PajeEvent {
+ container_t container;
+ type_t type;
+ public:
+ PopStateEvent (double timestamp, container_t container, type_t type);
+ void print() override;
+};
+
+class ResetStateEvent : public PajeEvent {
+ container_t container;
+ type_t type;
+ public:
+ ResetStateEvent (double timestamp, container_t container, type_t type);
+ void print() override;
+};
+
+class StartLinkEvent : public PajeEvent {
+ public:
+ container_t container;
+ type_t type;
+ container_t sourceContainer;
+ char *value;
+ char *key;
+ int size;
+ public:
+ StartLinkEvent (double timestamp, container_t container, type_t type, container_t sourceContainer,
+ const char *value, const char *key);
+ StartLinkEvent (double timestamp, container_t container, type_t type,
+ container_t sourceContainer, const char *value, const char *key, int size);
+ void print() override;
+};
+
+class EndLinkEvent : public PajeEvent {
+ container_t container;
+ type_t type;
+ container_t destContainer;
+ char *value;
+ char *key;
+ public:
+ EndLinkEvent (double timestamp, container_t container, type_t type, container_t destContainer,
+ const char *value, const char *key);
+ void print() override;
+};
+
+
+class NewEvent : public PajeEvent {
+ public:
+ container_t container;
+ type_t type;
+ val_t value;
+ public:
+ NewEvent (double timestamp, container_t container, type_t type, val_t value);
+ void print() override;
+
+};
+
+
+extern XBT_PRIVATE xbt_dict_t created_categories;
+extern XBT_PRIVATE xbt_dict_t declared_marks;
+extern XBT_PRIVATE xbt_dict_t user_host_variables;
+extern XBT_PRIVATE xbt_dict_t user_vm_variables;
+extern XBT_PRIVATE xbt_dict_t user_link_variables;
+extern XBT_PRIVATE double TRACE_last_timestamp_to_dump;