Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Rename SafetyChecker::is_exploration_stack_state() into checkNonDeterminism()
[simgrid.git] / src / mc / SafetyChecker.hpp
1 /* Copyright (c) 2008-2016. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #ifndef SIMGRID_MC_SAFETY_CHECKER_HPP
8 #define SIMGRID_MC_SAFETY_CHECKER_HPP
9
10 #include <list>
11
12 #include "src/mc/mc_forward.hpp"
13 #include "src/mc/Checker.hpp"
14
15 namespace simgrid {
16 namespace mc {
17
18 class SafetyChecker : public Checker {
19   simgrid::mc::ReductionMode reductionMode_ = simgrid::mc::ReductionMode::unset;
20 public:
21   SafetyChecker(Session& session);
22   ~SafetyChecker();
23   int run() override;
24   RecordTrace getRecordTrace() override;
25   std::vector<std::string> getTextualTrace() override;
26 private:
27   // Temp
28   void init();
29   bool checkNonDeterminism(simgrid::mc::State* current_state);
30 private:
31   /** Stack representing the position in the exploration graph */
32   std::list<simgrid::mc::State*> stack_;
33 };
34
35 }
36 }
37
38 #endif