-/* Copyright (c) 2014. The SimGrid Team.
+/* Copyright (c) 2014-2015. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* passed to the application (without the MC specific arguments).
*/
-#ifndef MC_RECORD_H
-#define MC_RECORD_H
+#ifndef SIMGRID_MC_RECORD_H
+#define SIMGRID_MC_RECORD_H
-#include <stdbool.h>
-
-#include "simgrid_config.h"
-#include "mc_record.h"
+#include <xbt/base.h>
+#include <xbt/dynar.h>
+#include <xbt/fifo.h>
SG_BEGIN_DECL()
-/** Replay path (if any) in string representation
- *
- * This is a path as generated by `MC_record_stack_to_string()`.
- */
-extern char* MC_record_path;
-
/** Whether the MC record mode is enabled
*
* The behaviour is not changed. The only real difference is that
*/
#define MC_record_is_active() _sg_do_model_check_record
-/** Whether the replay mode is enabled */
-static inline bool MC_record_replay_is_active(void) {
- return MC_record_path;
-}
-
// **** Data conversion
/** An element in the recorded path
/** Convert a string representation of the path into a array of `s_mc_record_item_t`
*/
-xbt_dynar_t MC_record_from_string(const char* data);
+XBT_PRIVATE xbt_dynar_t MC_record_from_string(const char* data);
/** Generate a string representation
*
* "pid0,value0;pid2,value2;pid3,value3". The value can be
* omitted is it is null.
*/
-char* MC_record_stack_to_string(xbt_fifo_t stack);
+XBT_PRIVATE char* MC_record_stack_to_string(xbt_fifo_t stack);
/** Dump the path represented by a given stack in the log
*/
-void MC_record_dump_path(xbt_fifo_t stack);
+XBT_PRIVATE void MC_record_dump_path(xbt_fifo_t stack);
// ***** Replay
* \param start Array of record item
* \item count Number of record items
*/
-void MC_record_replay(mc_record_item_t start, size_t count);
+XBT_PRIVATE void MC_record_replay(mc_record_item_t start, size_t count);
/** Replay a path represented by a string
*
* \param data String representation of the path
*/
-void MC_record_replay_from_string(const char* data);
+XBT_PRIVATE void MC_record_replay_from_string(const char* data);
+
+XBT_PRIVATE void MC_record_replay_init(void);
SG_END_DECL()