#include <xbt/base.h>
#include <xbt/functional.hpp>
+#include <xbt/string.hpp>
#include <simgrid/chrono.hpp>
#include <simgrid/simix.h>
/** @brief Simulation Agent (see \ref s4u_actor)*/
XBT_PUBLIC_CLASS Actor {
friend Mailbox;
- friend simgrid::simix::Process;
+ friend simgrid::simix::ActorImpl;
smx_process_t pimpl_ = nullptr;
/** Wrap a (possibly non-copyable) single-use task into a `std::function` */
//static Actor *byPid(int pid); not implemented
/** Retrieves the name of that actor */
- const char* getName();
+ simgrid::xbt::string getName();
/** Retrieves the host on which that actor is running */
s4u::Host *getHost();
/** Retrieves the PID of that actor */
int getPid();
+ /** Retrieves the PPID of that actor */
+ int getPpid();
/** If set to true, the actor will automatically restart when its host reboots */
void setAutoRestart(bool autorestart);
/** Ask the actor to die.
*
* It will only notice your request when doing a simcall next time (a communication or similar).
- * SimGrid sometimes have issues when you kill actors that are currently communicating and such. We are working on it to fix the issues.
+ * SimGrid sometimes have issues when you kill actors that are currently communicating and such.
+ * We are working on it to fix the issues.
*/
void kill();
* Return the PID of the current actor.
*/
XBT_PUBLIC(int) getPid();
+
+ /**
+ * Return the PPID of the current actor.
+ */
+ int getPpid();
};