/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
-/** \file
+/** \file mc_record.h
+ *
* This file contains the MC replay/record functionnality.
* A MC path may be recorded by using ``-cfg=model-check/record:1`'`.
* The path is written in the log output and an be replayed with MC disabled
#include <xbt/base.h>
+#include "src/mc/Transition.hpp"
+
namespace simgrid {
namespace mc {
-/** An element in the recorded path
- *
- * At each decision point, we need to record which process transition
- * is trigerred and potentially which value is associated with this
- * transition. The value is used to find which communication is triggerred
- * in things like waitany and for associating a given value of MC_random()
- * calls.
- */
-struct RecordTraceElement {
- int pid = 0;
- int value = 0;
- RecordTraceElement() {}
- RecordTraceElement(int pid, int value) : pid(pid), value(value) {}
-};
-
-typedef std::vector<RecordTraceElement> RecordTrace;
+typedef std::vector<Transition> RecordTrace;
-/** Convert a string representation of the path into a array of `simgrid::mc::RecordTraceElement`
+/** Convert a string representation of the path into a array of `simgrid::mc::Transition`
*/
XBT_PRIVATE RecordTrace parseRecordTrace(const char* data);
XBT_PRIVATE std::string traceToString(simgrid::mc::RecordTrace const& trace);