- std::vector<simgrid::mc::SimixProcessInformation>& simix_processes();
- std::vector<simgrid::mc::SimixProcessInformation>& old_simix_processes();
+ std::vector<simgrid::mc::ActorInformation>& actors();
+ std::vector<simgrid::mc::ActorInformation>& dead_actors();
+
+ /** Get a local description of a remote SIMIX actor */
+ simgrid::mc::ActorInformation* resolveActorInfo(simgrid::mc::RemotePtr<simgrid::simix::ActorImpl> actor)
+ {
+ xbt_assert(mc_model_checker != nullptr);
+ if (not actor)
+ return nullptr;
+ this->refresh_simix();
+ for (auto& actor_info : this->smx_actors_infos)
+ if (actor_info.address == actor)
+ return &actor_info;
+ for (auto& actor_info : this->smx_dead_actors_infos)
+ if (actor_info.address == actor)
+ return &actor_info;
+ return nullptr;
+ }
+
+ /** Get a local copy of the SIMIX actor structure */
+ simgrid::simix::ActorImpl* resolveActor(simgrid::mc::RemotePtr<simgrid::simix::ActorImpl> process)
+ {
+ simgrid::mc::ActorInformation* actor_info = this->resolveActorInfo(process);
+ if (actor_info)
+ return actor_info->copy.getBuffer();
+ else
+ return nullptr;
+ }