Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
mcapi::log_state() in run()
[simgrid.git] / src / mc / mc_api.hpp
index e4ecaea..1d26691 100644 (file)
@@ -26,6 +26,14 @@ class mc_api {
 private:
   mc_api() = default;
 
+  struct DerefAndCompareByActorsCountAndUsedHeap {
+    template <class X, class Y> bool operator()(X const& a, Y const& b) const
+    {
+      return std::make_pair(a->actors_count, a->heap_bytes_used) < std::make_pair(b->actors_count, b->heap_bytes_used);
+    }
+  };
+
+
 public:
   // No copy:
   mc_api(mc_api const&) = delete;
@@ -114,6 +122,13 @@ public:
   std::vector<int> automaton_propositional_symbol_evaluate() const;
   std::vector<xbt_automaton_state_t> get_automaton_state() const;
   int compare_automaton_exp_lable(const xbt_automaton_exp_label* l, std::vector<int> const& values) const;
+  void set_property_automaton(xbt_automaton_state_t const& automaton_state) const;
+  inline DerefAndCompareByActorsCountAndUsedHeap compare_pair() const {
+    return DerefAndCompareByActorsCountAndUsedHeap();
+  }
+  inline int automaton_state_compare(const_xbt_automaton_state_t const& s1, const_xbt_automaton_state_t const& s2) const {
+    return xbt_automaton_state_compare(s1, s2);
+  }
 };
 
 } // namespace mc