Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add a message to the user to specify our requirement for Boost version
[simgrid.git] / src / mc / mc_liveness.h
index b75d935..b8fbd01 100644 (file)
@@ -14,6 +14,7 @@
 #include <xbt/fifo.h>
 #include <xbt/dynar.h>
 #include <xbt/automaton.h>
+#include <xbt/memory.hpp>
 #include "src/mc/mc_state.h"
 
 SG_BEGIN_DECL()
@@ -30,7 +31,7 @@ struct XBT_PRIVATE Pair {
   int search_cycle = 0;
   mc_state_t graph_state = nullptr; /* System state included */
   xbt_automaton_state_t automaton_state = nullptr;
-  xbt_dynar_t atomic_propositions = nullptr;
+  simgrid::xbt::unique_ptr<s_xbt_dynar_t> atomic_propositions;
   int requests = 0;
   int depth = 0;
   int exploration_started = 0;
@@ -44,21 +45,21 @@ struct XBT_PRIVATE Pair {
 };
 
 struct XBT_PRIVATE VisitedPair {
-  int num;
-  int other_num; /* Dot output for */
-  int acceptance_pair;
-  mc_state_t graph_state; /* System state included */
-  xbt_automaton_state_t automaton_state;
-  xbt_dynar_t atomic_propositions;
-  size_t heap_bytes_used;
-  int nb_processes;
-  int acceptance_removed;
-  int visited_removed;
+  int num = 0;
+  int other_num = 0; /* Dot output for */
+  int acceptance_pair = 0;
+  mc_state_t graph_state = nullptr; /* System state included */
+  xbt_automaton_state_t automaton_state = nullptr;
+  simgrid::xbt::unique_ptr<s_xbt_dynar_t> atomic_propositions;
+  size_t heap_bytes_used = 0;
+  int nb_processes = 0;
+  int acceptance_removed = 0;
+  int visited_removed = 0;
+
+  VisitedPair(int pair_num, xbt_automaton_state_t automaton_state, xbt_dynar_t atomic_propositions, mc_state_t graph_state);
+  ~VisitedPair();
 };
 
-XBT_PRIVATE simgrid::mc::VisitedPair* visited_pair_new(int pair_num, xbt_automaton_state_t automaton_state, xbt_dynar_t atomic_propositions, mc_state_t graph_state);
-XBT_PRIVATE void visited_pair_delete(simgrid::mc::VisitedPair* p);
-
 int modelcheck_liveness(void);
 XBT_PRIVATE void show_stack_liveness(xbt_fifo_t stack);
 XBT_PRIVATE void dump_stack_liveness(xbt_fifo_t stack);