- ModelChecker(pid_t pid, int socket);
- ~ModelChecker();
- s_mc_process_t& process()
- {
- return process_;
- }
- s_mc_pages_store_t& page_store()
- {
- return *page_store_;
- }
- const char* get_host_name(const char* name);
+ explicit ModelChecker(std::unique_ptr<RemoteProcessMemory> remote_simulation, int sockfd);
+
+ RemoteProcessMemory& get_remote_process_memory() { return *remote_process_memory_; }
+ Channel& get_channel() { return checker_side_.get_channel(); }
+ void channel_handle_events() { checker_side_.dispatch(); }
+
+ void start();
+
+ /** Let the application take a transition. A new Transition is created iff the last parameter is true */
+ Transition* handle_simcall(aid_t aid, int times_considered, bool new_transition);
+
+ Exploration* get_exploration() const { return exploration_; }
+ void set_exploration(Exploration* exploration) { exploration_ = exploration; }
+
+private:
+ bool handle_message(const char* buffer, ssize_t size);
+ void handle_waitpid();