X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5787a5c839c1f49fec942290449d18b72b036d98..9e8ba3861df85d86342342252be58cd546df2d08:/src/mc/SafetyChecker.hpp diff --git a/src/mc/SafetyChecker.hpp b/src/mc/SafetyChecker.hpp index 3c559a73f7..8d237cea3e 100644 --- a/src/mc/SafetyChecker.hpp +++ b/src/mc/SafetyChecker.hpp @@ -7,22 +7,36 @@ #ifndef SIMGRID_MC_SAFETY_CHECKER_HPP #define SIMGRID_MC_SAFETY_CHECKER_HPP +#include +#include +#include +#include + #include "src/mc/mc_forward.hpp" #include "src/mc/Checker.hpp" +#include "src/mc/VisitedState.hpp" namespace simgrid { namespace mc { -class SafetyChecker : public Checker { +class XBT_PRIVATE SafetyChecker : public Checker { simgrid::mc::ReductionMode reductionMode_ = simgrid::mc::ReductionMode::unset; public: SafetyChecker(Session& session); ~SafetyChecker(); int run() override; + RecordTrace getRecordTrace() override; + std::vector getTextualTrace() override; private: // Temp void init(); - void pre(); + bool checkNonTermination(simgrid::mc::State* current_state); + int backtrack(); +private: + /** Stack representing the position in the exploration graph */ + std::list> stack_; + simgrid::mc::VisitedStates visitedStates_; + std::unique_ptr visitedState_; }; }