X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d974764c400528dfd76c9a2ae6b7f26643fcc02f..16bbb8a8212497d9c44c81333ed2c0e689e0c5af:/include/simgrid/s4u/actor.hpp?ds=sidebyside diff --git a/include/simgrid/s4u/actor.hpp b/include/simgrid/s4u/actor.hpp index d59ad63348..696da86dad 100644 --- a/include/simgrid/s4u/actor.hpp +++ b/include/simgrid/s4u/actor.hpp @@ -8,14 +8,11 @@ #include #include +#include namespace simgrid { namespace s4u { -class Comm; -class Host; -class Mailbox; - /** @brief Simulation Agent * * An actor may be defined as a code executing in a location (host). @@ -33,74 +30,74 @@ class Mailbox; * * class Worker : simgrid::s4u::Actor { * - * int main(int argc, char **argv) { - * printf("Hello s4u"); - * } + * int main(int argc, char **argv) { + * printf("Hello s4u"); + * } * }; * \endverbatim * */ XBT_PUBLIC_CLASS Actor { - friend Comm; - Actor(smx_process_t smx_proc); + friend Comm; + Actor(smx_process_t smx_proc); public: - Actor(const char*name, s4u::Host *host, int argc, char **argv); - Actor(const char*name, s4u::Host *host, int argc, char **argv, double killTime); - virtual ~Actor() {} - - /** The main method of your agent */ - virtual int main(int argc, char **argv); - - /** The Actor that is currently running */ - static Actor *current(); - /** Retrieves the actor that have the given PID (or NULL if not existing) */ - static Actor *byPid(int pid); - - /** Retrieves the name of that actor */ - const char*getName(); - /** Retrieves the host on which that actor is running */ - s4u::Host *getHost(); - /** Retrieves the PID of that actor */ - int getPid(); - - /** If set to true, the actor will automatically restart when its host reboots */ - void setAutoRestart(bool autorestart); - /** Sets the time at which that actor should be killed */ - void setKillTime(double time); - /** Retrieves the time at which that actor will be killed (or -1 if not set) */ - double getKillTime(); - - /** Ask kindly to all actors to die. Only the issuer will survive. */ - static void killAll(); - /** 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. - */ - void kill(); - - /** Block the actor sleeping for that amount of seconds (may throws hostFailure) */ - void sleep(double duration); - - /** Block the actor, computing the given amount of flops */ - e_smx_state_t execute(double flop); - - /** Block the actor until it gets a message from the given mailbox. - * - * See \ref Comm for the full communication API (including non blocking communications). - */ - void *recv(Mailbox &chan); - - /** Block the actor until it delivers a message of the given simulated size to the given mailbox - * - * See \ref Comm for the full communication API (including non blocking communications). - */ - void send(Mailbox &chan, void*payload, size_t simulatedSize); + Actor(const char*name, s4u::Host *host, int argc, char **argv); + Actor(const char*name, s4u::Host *host, int argc, char **argv, double killTime); + virtual ~Actor() {} + + /** The main method of your agent */ + virtual int main(int argc, char **argv); + + /** The Actor that is currently running */ + static Actor *current(); + /** Retrieves the actor that have the given PID (or NULL if not existing) */ + static Actor *byPid(int pid); + + /** Retrieves the name of that actor */ + const char*getName(); + /** Retrieves the host on which that actor is running */ + s4u::Host *getHost(); + /** Retrieves the PID of that actor */ + int getPid(); + + /** If set to true, the actor will automatically restart when its host reboots */ + void setAutoRestart(bool autorestart); + /** Sets the time at which that actor should be killed */ + void setKillTime(double time); + /** Retrieves the time at which that actor will be killed (or -1 if not set) */ + double getKillTime(); + + /** Ask kindly to all actors to die. Only the issuer will survive. */ + static void killAll(); + /** 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. + */ + void kill(); + + /** Block the actor sleeping for that amount of seconds (may throws hostFailure) */ + void sleep(double duration); + + /** Block the actor, computing the given amount of flops */ + e_smx_state_t execute(double flop); + + /** Block the actor until it gets a message from the given mailbox. + * + * See \ref Comm for the full communication API (including non blocking communications). + */ + void *recv(Mailbox &chan); + + /** Block the actor until it delivers a message of the given simulated size to the given mailbox + * + * See \ref Comm for the full communication API (including non blocking communications). + */ + void send(Mailbox &chan, void*payload, size_t simulatedSize); protected: - smx_process_t getInferior() {return p_smx_process;} + smx_process_t getInferior() {return p_smx_process;} private: - smx_process_t p_smx_process; + smx_process_t p_smx_process; }; }} // namespace simgrid::s4u @@ -109,34 +106,34 @@ private: #if 0 public abstract class Actor implements Runnable { - /** Suspends the process. See {@link #resume()} to resume it afterward */ - public native void suspend(); - /** Resume a process that was suspended by {@link #suspend()}. */ - public native void resume(); - /** Tests if a process is suspended. */ - public native boolean isSuspended(); - - /** - * Returns the value of a given process property. - */ - public native String getProperty(String name); - - - /** - * Migrates a process to another host. - * - * @param host The host where to migrate the process. - * - */ - public native void migrate(Host host); - - public native void exit(); - /** - * This static method returns the current amount of processes running - * - * @return The count of the running processes - */ - public native static int getCount(); + /** Suspends the process. See {@link #resume()} to resume it afterward */ + public native void suspend(); + /** Resume a process that was suspended by {@link #suspend()}. */ + public native void resume(); + /** Tests if a process is suspended. */ + public native boolean isSuspended(); + + /** + * Returns the value of a given process property. + */ + public native String getProperty(String name); + + + /** + * Migrates a process to another host. + * + * @param host The host where to migrate the process. + * + */ + public native void migrate(Host host); + + public native void exit(); + /** + * This static method returns the current amount of processes running + * + * @return The count of the running processes + */ + public native static int getCount(); } #endif