// abstract
class Exploration : public xbt::Extendable<Exploration> {
std::unique_ptr<RemoteApp> remote_app_;
+ static Exploration* instance_;
FILE* dot_output_ = nullptr;
explicit Exploration(const std::vector<char*>& args);
virtual ~Exploration();
+ static Exploration* get_instance() { return instance_; }
// No copy:
Exploration(Exploration const&) = delete;
Exploration& operator=(Exploration const&) = delete;
/** Main function of this algorithm */
virtual void run() = 0;
+ /** Produce an error message indicating that the application crashed (status was produced by waitpid) */
+ void report_crash(int status);
+ /** Produce an error message indicating that a property was violated */
+ void report_assertion_failure();
+
/** Kill the application and the model-checker (which exits with `status`)*/
XBT_ATTRIB_NORETURN void system_exit(int status);