X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7f5e78a43b4bed7bae8304ad12de6e2e555b34db..f9b13d923d31bb0336aeeaab6d5b7ba33812f3f7:/src/mc/Session.hpp diff --git a/src/mc/Session.hpp b/src/mc/Session.hpp index 3a79387222..53161e13bc 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-2022. 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,7 +6,9 @@ #ifndef SIMGRID_MC_SESSION_HPP #define SIMGRID_MC_SESSION_HPP +#include "simgrid/forward.h" #include "src/mc/ModelChecker.hpp" +#include "src/mc/remote/RemotePtr.hpp" #include @@ -21,7 +23,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,21 +40,20 @@ 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 take_initial_snapshot(); + void log_state() const; - void restore_initial_state(); + void restore_initial_state() const; + bool actor_is_enabled(aid_t pid) const; }; // Temporary :) -extern simgrid::mc::Session* session; - +extern simgrid::mc::Session* session_singleton; } }