A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[mc] Rename RecordTraceElement as Transition and use it to represent a transition
[simgrid.git]
/
src
/
mc
/
mc_record.h
diff --git
a/src/mc/mc_record.h
b/src/mc/mc_record.h
index
88911c0
..
7901b67
100644
(file)
--- a/
src/mc/mc_record.h
+++ b/
src/mc/mc_record.h
@@
-17,64
+17,40
@@
#ifndef SIMGRID_MC_RECORD_H
#define SIMGRID_MC_RECORD_H
#ifndef SIMGRID_MC_RECORD_H
#define SIMGRID_MC_RECORD_H
+#include <string>
+#include <vector>
+
#include <xbt/base.h>
#include <xbt/base.h>
-#include <xbt/dynar.h>
-#include <xbt/fifo.h>
-SG_BEGIN_DECL()
+#include "src/mc/Transition.hpp"
-/** Whether the MC record mode is enabled
- *
- * The behaviour is not changed. The only real difference is that
- * the path is writtent in the log when an interesting path is found.
- */
-#define MC_record_is_active() _sg_do_model_check_record
+namespace simgrid {
+namespace mc {
-// **** Data conversion
+typedef std::vector<Transition> RecordTrace;
-/** 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.
+/** Convert a string representation of the path into a array of `simgrid::mc::Transition`
*/
*/
-typedef struct s_mc_record_item {
- int pid;
- int value;
-} s_mc_record_item_t, *mc_record_item_t;
+XBT_PRIVATE RecordTrace parseRecordTrace(const char* data);
+XBT_PRIVATE std::string traceToString(simgrid::mc::RecordTrace const& trace);
+XBT_PRIVATE void dumpRecordPath();
-/** Convert a string representation of the path into a array of `s_mc_record_item_t`
- */
-XBT_PRIVATE xbt_dynar_t MC_record_from_string(const char* data);
+XBT_PRIVATE void replay(RecordTrace const& trace);
+XBT_PRIVATE void replay(const char* trace);
-/** Generate a string representation
-*
-* The current format is a ";"-delimited list of pairs:
-* "pid0,value0;pid2,value2;pid3,value3". The value can be
-* omitted is it is null.
-*/
-XBT_PRIVATE char* MC_record_stack_to_string(xbt_fifo_t stack);
+}
+}
-/** Dump the path represented by a given stack in the log
- */
-XBT_PRIVATE void MC_record_dump_path(xbt_fifo_t stack);
-
-// ***** Replay
+SG_BEGIN_DECL()
-/**
Replay a path represented by the record items
+/**
Whether the MC record mode is enabled
*
*
- *
\param start Array of record item
- *
\item count Number of record items
+ *
The behaviour is not changed. The only real difference is that
+ *
the path is writtent in the log when an interesting path is found.
*/
*/
-XBT_PRIVATE void MC_record_replay(mc_record_item_t start, size_t count);
+#define MC_record_is_active() _sg_do_model_check_record
-/** Replay a path represented by a string
- *
- * \param data String representation of the path
- */
-XBT_PRIVATE void MC_record_replay_from_string(const char* data);
+// **** Data conversion
SG_END_DECL()
SG_END_DECL()