#include "simgrid/forward.h"
#include "src/mc/mc_forward.hpp"
#include "src/mc/mc_record.hpp"
-#include "src/mc/mc_request.hpp"
#include "src/mc/mc_state.hpp"
#include "xbt/automaton.hpp"
#include "xbt/base.h"
namespace simgrid {
namespace mc {
+XBT_DECLARE_ENUM_CLASS(CheckerAlgorithm, Safety, UDPOR, Liveness, CommDeterminism);
+
/**
* @brief Maintains the transition's information.
*/
return api;
}
- void initialize(char** argv) const;
+ simgrid::mc::Checker* initialize(char** argv, simgrid::mc::CheckerAlgorithm algo) const;
// ACTOR APIs
std::vector<simgrid::mc::ActorInformation>& get_actors() const;
// COMMUNICATION APIs
RemotePtr<kernel::activity::CommImpl> get_comm_isend_raw_addr(smx_simcall_t request) const;
- RemotePtr<kernel::activity::CommImpl> get_comm_wait_raw_addr(smx_simcall_t request) const;
RemotePtr<kernel::activity::CommImpl> get_comm_waitany_raw_addr(smx_simcall_t request, int value) const;
std::string get_pattern_comm_rdv(RemotePtr<kernel::activity::CommImpl> const& addr) const;
unsigned long get_pattern_comm_src_proc(RemotePtr<kernel::activity::CommImpl> const& addr) const;
void mc_check_deadlock() const;
bool mc_is_null() const;
Checker* mc_get_checker() const;
- void set_checker(Checker* const checker) const;
void handle_simcall(Transition const& transition) const;
void mc_wait_for_requests() const;
XBT_ATTRIB_NORETURN void mc_exit(int status) const;