X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/80636e60075039dfb7de739cd9dc7094db092962..9f9eacbd59910b9bce3a39e41ce1d966f9a60c4c:/src/mc/mc_api.hpp diff --git a/src/mc/mc_api.hpp b/src/mc/mc_api.hpp index bafc17894a..234a59582d 100644 --- a/src/mc/mc_api.hpp +++ b/src/mc/mc_api.hpp @@ -6,6 +6,8 @@ #include "simgrid/forward.h" #include "src/mc/mc_forward.hpp" +#include "src/mc/mc_request.hpp" +#include "src/mc/mc_state.hpp" #include "xbt/base.h" namespace simgrid { @@ -36,17 +38,37 @@ public: void initialize(char** argv); - // MODEL_CHECKER FUNCTIONS - void create_model_checker(std::unique_ptr remote_simulation, int sockfd); + // ACTOR APIs + std::vector& get_actors() const; + bool actor_is_enabled(aid_t pid) const; + unsigned long get_maxpid() const; + int get_actors_size() const; + + // COMMUNICATION APIs + void copy_incomplete_comm_pattern(simgrid::mc::State* state) const; + void copy_index_comm_pattern(simgrid::mc::State* state) const; + kernel::activity::CommImpl* get_comm_isend_raw_addr(smx_simcall_t request) const; + std::string get_pattern_comm_rdv(void* addr) const; + unsigned long get_pattern_comm_src_proc(void* addr) const; + unsigned long get_pattern_comm_dst_proc(void* addr) const; + std::vector get_pattern_comm_data(void* addr) const; + std::vector get_pattern_comm_data(mc::RemotePtr const& comm_addr) const; + const char* get_actor_host_name(smx_actor_t actor) const; + bool check_send_request_detached(smx_simcall_t const& simcall) const; + smx_actor_t get_src_actor(mc::RemotePtr const& comm_addr) const; + smx_actor_t get_dst_actor(mc::RemotePtr const& comm_addr) const; + + // REMOTE APIs + std::size_t get_remote_heap_bytes() const; + + // MODEL CHECKER APIs ModelChecker* get_model_checker() const; void mc_inc_visited_states() const; void mc_inc_executed_trans() const; unsigned long mc_get_visited_states() const; unsigned long mc_get_executed_trans() const; bool mc_check_deadlock() const; - std::vector& get_actors() const; - bool actor_is_enabled(aid_t pid) const; - void mc_assert(bool notNull, const char* message = "") const; + void mc_show_deadlock() const; bool mc_is_null() const; Checker* mc_get_checker() const; RemoteSimulation& mc_get_remote_simulation() const; @@ -54,15 +76,32 @@ public: void mc_wait_for_requests() const; void mc_exit(int status) const; std::string const& mc_get_host_name(std::string const& hostname) const; - PageStore& mc_page_store() const; - void mc_cleanup(); + void mc_dump_record_path() const; + smx_simcall_t mc_state_choose_request(simgrid::mc::State* state) const; + + // SIMCALL APIs + bool request_depend(smx_simcall_t req1, smx_simcall_t req2) const; + std::string request_to_string(smx_simcall_t req, int value, RequestType request_type) const; + std::string request_get_dot_output(smx_simcall_t req, int value) const; + const char *simcall_get_name(simgrid::simix::Simcall kind) const; + smx_actor_t simcall_get_issuer(s_smx_simcall const* req) const; + #if HAVE_SMPI + int get_smpi_request_tag(smx_simcall_t const& simcall, simgrid::simix::Simcall type) const; + #endif + + // STATE APIs + void restore_state(std::shared_ptr system_state) const; + void log_state() const; + void restore_initial_state() const; + + // SNAPSHOT APIs + bool snapshot_equal(const Snapshot* s1, const Snapshot* s2) const; + simgrid::mc::Snapshot* take_snapshot(int num_state) const; - // SESSION FUNCTIONS + // SESSION APIs void s_initialize() const; void s_close() const; - void s_restore_initial_state() const; void execute(Transition const& transition); - void s_log_state() const; }; } // namespace mc