X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fe304706848f0a64477d4687b3ea97d5b9a0c35c..b41c921fc0a6a13f5db4d6cefb9b6955d5f21e3b:/src/mc/Session.hpp?ds=sidebyside diff --git a/src/mc/Session.hpp b/src/mc/Session.hpp index 283366cda8..ab21a05b71 100644 --- a/src/mc/Session.hpp +++ b/src/mc/Session.hpp @@ -21,18 +21,25 @@ 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_; - Session(pid_t pid, int socket); - // No copy: Session(Session const&) = delete; Session& operator=(Session const&) = delete; public: + /** Create a new session by executing the provided code in a fork() + * + * This sets up the environment for the model-checked process + * (environment variables, sockets, etc.). + * + * The code is expected to `exec` the model-checked application. + */ + explicit Session(const std::function& code); + ~Session(); void close(); @@ -41,31 +48,6 @@ public: void log_state(); void restore_initial_state(); - - // static constructors - - /** Create a new session by forking - * - * This sets up the environment for the model-checked process - * (environment variables, sockets, etc.). - * - * The code is expected to `exec` the model-checker program. - */ - static Session* fork(const std::function& code); - - /** Spawn a model-checked process - * - * @param path full path of the executable - * @param argv arguments for the model-checked process (NULL-terminated) - */ - static Session* spawnv(const char *path, char *const argv[]); - - /** Spawn a model-checked process (using PATH) - * - * @param file file name of the executable (found using `PATH`) - * @param argv arguments for the model-checked process (NULL-terminated) - */ - static Session* spawnvp(const char *file, char *const argv[]); }; // Temporary :)