Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[simix] Use C++ templates for generating the marshaling/unmashaling code
[simgrid.git] / src / mc / mc_base.h
index c9a324b..9e74d39 100644 (file)
@@ -7,15 +7,20 @@
 #ifndef SIMGRID_MC_BASE_H
 #define SIMGRID_MC_BASE_H
 
+#ifdef __cplusplus
+#include <vector>
+#endif
+
 #include <xbt/base.h>
-#include "src/simix/popping_private.h" // smx_simcall_t
+
+typedef struct s_smx_simcall s_smx_simcall_t, *smx_simcall_t;
 
 #ifdef __cplusplus
 
 namespace simgrid {
 namespace mc {
 
-/** Can this requests can be executed.
+/** Can this requests can be executed?
  *
  *  Most requests are always enabled but WAIT and WAITANY
  *  are not always enabled: a WAIT where the communication does not
@@ -35,7 +40,13 @@ XBT_PRIVATE void wait_for_requests(void);
 XBT_PRIVATE extern std::vector<double> processes_time;
 
 /** Execute a given simcall */
-XBT_PRIVATE void handle_simcall(smx_simcall_t req, int value);
+XBT_PRIVATE void handle_simcall(smx_simcall_t req, int req_num);
+
+/** Check if the given simcall is visible
+ *
+ *  \return `TRUE` or `FALSE`
+ */
+XBT_PRIVATE bool request_is_visible(smx_simcall_t req);
 
 }
 }