X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7f5e78a43b4bed7bae8304ad12de6e2e555b34db..06e50380de1b8cf82ce7241ce1fb96750097ba01:/src/mc/Session.hpp diff --git a/src/mc/Session.hpp b/src/mc/Session.hpp index 3a79387222..c0942d82dc 100644 --- a/src/mc/Session.hpp +++ b/src/mc/Session.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2016-2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2016-2021. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -6,6 +6,7 @@ #ifndef SIMGRID_MC_SESSION_HPP #define SIMGRID_MC_SESSION_HPP +#include "simgrid/forward.h" #include "src/mc/ModelChecker.hpp" #include @@ -21,7 +22,7 @@ namespace mc { * algorithms should be able to be written in high-level languages * (e.g. Python) using bindings on this interface. */ -class Session { +class XBT_PUBLIC Session { private: std::unique_ptr model_checker_; std::shared_ptr initial_snapshot_; @@ -38,16 +39,17 @@ public: * * The code is expected to `exec` the model-checked application. */ - Session(const std::function& code); + explicit Session(const std::function& code); ~Session(); void close(); void initialize(); - void execute(Transition const& transition); - void log_state(); + void execute(Transition const& transition) const; + void log_state() const; - void restore_initial_state(); + void restore_initial_state() const; + bool actor_is_enabled(aid_t pid) const; }; // Temporary :)