- fprintf(tracing_file, "%% Name string\n");
- fprintf(tracing_file, "%% Color color\n");
- fprintf(tracing_file, "%%EndEventDef\n");
-}
-
-static void TRACE_header_PajeCreateContainer (int basic, int size)
-{
- fprintf(tracing_file, "%%EventDef PajeCreateContainer %d\n", PAJE_CreateContainer);
- fprintf(tracing_file, "%% Time date\n");
- fprintf(tracing_file, "%% Alias string\n");
- fprintf(tracing_file, "%% Type string\n");
- fprintf(tracing_file, "%% Container string\n");
- fprintf(tracing_file, "%% Name string\n");
- fprintf(tracing_file, "%%EndEventDef\n");
-}
-
-static void TRACE_header_PajeDestroyContainer (int basic, int size)
-{
- fprintf(tracing_file, "%%EventDef PajeDestroyContainer %d\n", PAJE_DestroyContainer);
- fprintf(tracing_file, "%% Time date\n");
- fprintf(tracing_file, "%% Type string\n");
- fprintf(tracing_file, "%% Name string\n");
- fprintf(tracing_file, "%%EndEventDef\n");
-}
-
-static void TRACE_header_PajeSetVariable (int basic, int size)
-{
- fprintf(tracing_file, "%%EventDef PajeSetVariable %d\n", PAJE_SetVariable);
- fprintf(tracing_file, "%% Time date\n");
- fprintf(tracing_file, "%% Type string\n");
- fprintf(tracing_file, "%% Container string\n");
- fprintf(tracing_file, "%% Value double\n");
- fprintf(tracing_file, "%%EndEventDef\n");
-}
-
-static void TRACE_header_PajeAddVariable (int basic, int size)
-{
- fprintf(tracing_file, "%%EventDef PajeAddVariable %d\n", PAJE_AddVariable);
- fprintf(tracing_file, "%% Time date\n");
- fprintf(tracing_file, "%% Type string\n");
- fprintf(tracing_file, "%% Container string\n");
- fprintf(tracing_file, "%% Value double\n");
- fprintf(tracing_file, "%%EndEventDef\n");
-}
-
-static void TRACE_header_PajeSubVariable (int basic, int size)
-{
- fprintf(tracing_file, "%%EventDef PajeSubVariable %d\n", PAJE_SubVariable);
- fprintf(tracing_file, "%% Time date\n");
- fprintf(tracing_file, "%% Type string\n");
- fprintf(tracing_file, "%% Container string\n");
- fprintf(tracing_file, "%% Value double\n");
- fprintf(tracing_file, "%%EndEventDef\n");
-}
-
-
-static void TRACE_header_PajeSetState (int basic, int size)
-{
- fprintf(tracing_file, "%%EventDef PajeSetState %d\n", PAJE_SetState);
- fprintf(tracing_file, "%% Time date\n");
- fprintf(tracing_file, "%% Type string\n");
- fprintf(tracing_file, "%% Container string\n");
- fprintf(tracing_file, "%% Value string\n");
- fprintf(tracing_file, "%%EndEventDef\n");
-}
-
-static void TRACE_header_PajePushState (int basic, int size)
-{
- fprintf(tracing_file, "%%EventDef PajePushState %d\n", PAJE_PushState);
- fprintf(tracing_file, "%% Time date\n");
- fprintf(tracing_file, "%% Type string\n");
- fprintf(tracing_file, "%% Container string\n");
- fprintf(tracing_file, "%% Value string\n");
- if (size) fprintf(tracing_file, "%% Size int\n");
+ tracing_file << "]\n";
+}
+
+void dump_comment_file(const std::string& filename)
+{
+ if (filename.empty())
+ return;
+ std::ifstream fs(filename.c_str(), std::ifstream::in);
+
+ if (fs.fail())
+ throw TracingError(XBT_THROW_POINT,
+ xbt::string_printf("Comment file %s could not be opened for reading.", filename.c_str()));
+
+ std::string line;
+ while (std::getline(fs, line))
+ tracing_file << "# " << line;
+ fs.close();
+}
+
+void dump_header(bool basic, bool display_sizes)
+{
+ // Types
+ tracing_file << "%EventDef PajeDefineContainerType " << PajeEventType::DefineContainerType << '\n';
+ tracing_file << "% Alias string\n";
+ if (basic)
+ tracing_file << "% ContainerType string\n";
+ else
+ tracing_file << "% Type string\n";
+
+ tracing_file << "% Name string\n";
+ tracing_file << "%EndEventDef\n";
+
+ tracing_file << "%EventDef PajeDefineVariableType " << PajeEventType::DefineVariableType << '\n';
+ tracing_file << "% Alias string\n";
+ tracing_file << "% " << (basic ? "Container" : "") << "Type string\n";
+ tracing_file << "% Name string\n";
+ tracing_file << "% Color color\n";
+ tracing_file << "%EndEventDef\n";
+
+ tracing_file << "%EventDef PajeDefineStateType " << PajeEventType::DefineStateType << '\n';
+ tracing_file << "% Alias string\n";
+ tracing_file << "% " << (basic ? "Container" : "") << "Type string\n";
+ tracing_file << "% Name string\n";
+ tracing_file << "%EndEventDef\n";
+
+ tracing_file << "%EventDef PajeDefineEventType " << PajeEventType::DefineEventType << '\n';
+ tracing_file << "% Alias string\n";
+ tracing_file << "% " << (basic ? "Container" : "") << "Type string\n";
+ tracing_file << "% Name string\n";
+ tracing_file << "%EndEventDef\n";
+
+ tracing_file << "%EventDef PajeDefineLinkType " << PajeEventType::DefineLinkType << '\n';
+ tracing_file << "% Alias string\n";
+ tracing_file << "% " << (basic ? "Container" : "") << "Type string\n";
+ tracing_file << "% " << (basic ? "Source" : "Start") << "ContainerType string\n";
+ tracing_file << "% " << (basic ? "Dest" : "End") << "ContainerType string\n";
+ tracing_file << "% Name string\n";
+ tracing_file << "%EndEventDef\n";
+
+ // EntityValue
+ tracing_file << "%EventDef PajeDefineEntityValue " << PajeEventType::DefineEntityValue << '\n';
+ tracing_file << "% Alias string\n";
+ tracing_file << "% " << (basic ? "Entity" : "") << "Type string\n";
+ tracing_file << "% Name string\n";
+ tracing_file << "% Color color\n";
+ tracing_file << "%EndEventDef\n";
+
+ // Container
+ tracing_file << "%EventDef PajeCreateContainer " << PajeEventType::CreateContainer << '\n';
+ tracing_file << "% Time date\n";
+ tracing_file << "% Alias string\n";
+ tracing_file << "% Type string\n";
+ tracing_file << "% Container string\n";
+ tracing_file << "% Name string\n";
+ tracing_file << "%EndEventDef\n";
+
+ tracing_file << "%EventDef PajeDestroyContainer " << PajeEventType::DestroyContainer << '\n';
+ tracing_file << "% Time date\n";
+ tracing_file << "% Type string\n";
+ tracing_file << "% Name string\n";
+ tracing_file << "%EndEventDef\n";
+
+ // Variable
+ tracing_file << "%EventDef PajeSetVariable " << PajeEventType::SetVariable << '\n';
+ tracing_file << "% Time date\n";
+ tracing_file << "% Type string\n";
+ tracing_file << "% Container string\n";
+ tracing_file << "% Value double\n";
+ tracing_file << "%EndEventDef\n";
+
+ tracing_file << "%EventDef PajeAddVariable " << PajeEventType::AddVariable << '\n';
+ tracing_file << "% Time date\n";
+ tracing_file << "% Type string\n";
+ tracing_file << "% Container string\n";
+ tracing_file << "% Value double\n";
+ tracing_file << "%EndEventDef\n";
+
+ tracing_file << "%EventDef PajeSubVariable " << PajeEventType::SubVariable << '\n';
+ tracing_file << "% Time date\n";
+ tracing_file << "% Type string\n";
+ tracing_file << "% Container string\n";
+ tracing_file << "% Value double\n";
+ tracing_file << "%EndEventDef\n";
+
+ // State
+ tracing_file << "%EventDef PajeSetState " << PajeEventType::SetState << '\n';
+ tracing_file << "% Time date\n";
+ tracing_file << "% Type string\n";
+ tracing_file << "% Container string\n";
+ tracing_file << "% Value string\n";
+ tracing_file << "%EndEventDef\n";
+
+ tracing_file << "%EventDef PajePushState " << PajeEventType::PushState << '\n';
+ tracing_file << "% Time date\n";
+ tracing_file << "% Type string\n";
+ tracing_file << "% Container string\n";
+ tracing_file << "% Value string\n";
+ if (display_sizes)
+ tracing_file << "% Size int\n";