X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4f2d08b0ae4625d32890dc4613e1d842ad0f7b77..63c219ee10cf464f95ad9888e0814439445b53f8:/include/simgrid/s4u/Actor.hpp diff --git a/include/simgrid/s4u/Actor.hpp b/include/simgrid/s4u/Actor.hpp index 098c8b90d2..22aa42590f 100644 --- a/include/simgrid/s4u/Actor.hpp +++ b/include/simgrid/s4u/Actor.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2006-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2006-2019. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -6,132 +6,51 @@ #ifndef SIMGRID_S4U_ACTOR_HPP #define SIMGRID_S4U_ACTOR_HPP -#include -#include // deprecated wrappers +#include + #include -#include #include #include #include #include +#include +#include // deprecated wrappers +#include + namespace simgrid { namespace s4u { -/** +/** An actor is an independent stream of execution in your distributed application. * - * An actor is an independent stream of execution in your distributed application. + * \beginrst + * It is located on a (simulated) :cpp:class:`host `, but can interact + * with the whole simulated platform. * * You can think of an actor as a process in your distributed application, or as a thread in a multithreaded program. * This is the only component in SimGrid that actually does something on its own, executing its own code. * A resource will not get used if you don't schedule activities on them. This is the code of Actors that create and - * schedule these activities. - * - * An actor is located on a (simulated) host, but it can interact - * with the whole simulated platform. - * - * The s4u::Actor API is strongly inspired from the C++11 threads. - * The documentation - * of this standard may help to understand the philosophy of the S4U - * Actors. - * - * @section s4u_actor_def Defining the skeleton of an Actor - * - * As in the C++11 - * standard, you can declare the code of your actor either as a - * pure function or as an object. It is very simple with functions: - * - * @code{.cpp} - * #include - * - * // Declare the code of your worker - * void worker() { - * printf("Hello s4u"); - * simgrid::s4u::this_actor::execute(5*1024*1024); // Get the worker executing a task of 5 MFlops - * }; - * - * // From your main or from another actor, create your actor on the host Jupiter - * // The following line actually creates a new actor, even if there is no "new". - * Actor("Alice", simgrid::s4u::Host::by_name("Jupiter"), worker); - * @endcode - * - * But some people prefer to encapsulate their actors in classes and - * objects to save the actor state in a cleanly dedicated location. - * The syntax is slightly more complicated, but not much. - * - * @code{.cpp} - * #include - * - * // Declare the class representing your actors - * class Worker { - * public: - * void operator()() { // Two pairs of () because this defines the method called () - * printf("Hello s4u"); - * simgrid::s4u::this_actor::execute(5*1024*1024); // Get the worker executing a task of 5 MFlops - * } - * }; - * - * // From your main or from another actor, create your actor. Note the () after Worker - * Actor("Bob", simgrid::s4u::Host::by_name("Jupiter"), Worker()); - * @endcode - * - * @section s4u_actor_flesh Fleshing your actor - * - * The body of your actor can use the functions of the - * simgrid::s4u::this_actor namespace to interact with the world. - * This namespace contains the methods to start new activities - * (executions, communications, etc), and to get informations about - * the currently running thread (its location, etc). - * - * Please refer to the @link simgrid::s4u::this_actor full API @endlink. + * schedule these activities. **Please refer to the** :ref:`examples ` **for more information.** * + * This API is strongly inspired from the C++11 threads. + * The `documentation of this standard `_ + * may help to understand the philosophy of the SimGrid actors. * - * @section s4u_actor_deploy Using a deployment file - * - * @warning This is currently not working with S4U. Sorry about that. - * - * The best practice is to use an external deployment file as - * follows, because it makes it easier to test your application in - * differing settings. Load this file with - * s4u::Engine::loadDeployment() before the simulation starts. - * Refer to the @ref deployment section for more information. - * - * @code{.xml} - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *