Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
further API doc improvement
[simgrid.git] / docs / source / app_s4u.rst
index 9375cbd..46f3d92 100644 (file)
@@ -66,58 +66,58 @@ provides many helper functions to simplify the code of actors.
 
 - **Global Classes**
 
-  - :ref:`class s4u::Actor <API_s4u_Actor>`:
+  - :ref:`class Actor <API_s4u_Actor>`:
     Active entities executing your application.
-  - :ref:`class s4u::Engine <API_s4u_Engine>`
+  - :ref:`class Engine <API_s4u_Engine>`
     Simulation engine (singleton).
-  - :ref:`class s4u::Mailbox <API_s4u_Mailbox>`
+  - :ref:`class Mailbox <API_s4u_Mailbox>`
     Communication rendez-vous.
 
 - **Platform Elements**
 
-  - :ref:`class s4u::Disk <API_s4u_Disk>`
+  - :ref:`class Disk <API_s4u_Disk>`
     Resource on which actors can write and read data.
-  - :ref:`class s4u::Host <API_s4u_Host>`:
+  - :ref:`class Host <API_s4u_Host>`:
     Actor location, providing computational power.
-  - :ref:`class s4u::Link <API_s4u_Link>`
+  - :ref:`class Link <API_s4u_Link>`
     Interconnecting hosts.
-  - :ref:`class s4u::NetZone <API_s4u_NetZone>`:
+  - :ref:`class NetZone <API_s4u_NetZone>`:
     Sub-region of the platform, containing resources (Hosts, Links, etc).
-  - :ref:`class s4u::VirtualMachine <API_s4u_VirtualMachine>`:
+  - :ref:`class VirtualMachine <API_s4u_VirtualMachine>`:
     Execution containers that can be moved between Hosts.
 
-- **Activities** (:ref:`class s4u::Activity <API_s4u_Activity>`):
+- **Activities** (:ref:`class Activity <API_s4u_Activity>`):
   The things that actors can do on resources
 
-  - :ref:`class s4u::Comm <API_s4u_Comm>`
+  - :ref:`class Comm <API_s4u_Comm>`
     Communication activity, started on Mailboxes and consuming links.
-  - :ref:`class s4u::Exec <API_s4u_Exec>`
+  - :ref:`class Exec <API_s4u_Exec>`
     Computation activity, started on Host and consuming CPU resources.
-  - :ref:`class s4u::Io <API_s4u_Io>`
+  - :ref:`class Io <API_s4u_Io>`
     I/O activity, started on and consumming disks.
 
 - **Synchronization Mechanisms**: Classical IPC that actors can use
 
-  - :ref:`class s4u::Barrier <API_s4u_Barrier>`
-  - :ref:`class s4u::ConditionVariable <API_s4u_ConditionVariable>`
-  - :ref:`class s4u::Mutex <API_s4u_Mutex>`
-  - :ref:`class s4u::Semaphore <API_s4u_Semaphore>`
+  - :ref:`class Barrier <API_s4u_Barrier>`
+  - :ref:`class ConditionVariable <API_s4u_ConditionVariable>`
+  - :ref:`class Mutex <API_s4u_Mutex>`
+  - :ref:`class Semaphore <API_s4u_Semaphore>`
 
 
 .. |API_s4u_Actors| replace:: **Actors**
-.. _API_s4u_Actors: #s4u-actor
+.. _API_s4u_Actors: #api-s4u-actor
 
 .. |API_s4u_Activities| replace:: **Activities**
-.. _API_s4u_Activities: #s4u-activity
+.. _API_s4u_Activities: #api-s4u-activity
 
 .. |API_s4u_Hosts| replace:: **Hosts**
-.. _API_s4u_Hosts: #s4u-host
+.. _API_s4u_Hosts: #api-s4u-host
 
 .. |API_s4u_Links| replace:: **Links**
-.. _API_s4u_Links: #s4u-link
+.. _API_s4u_Links: #api-s4u-link
 
 .. |API_s4u_Disks| replace:: **Disks**
-.. _API_s4u_Disks: #s4u-disk
+.. _API_s4u_Disks: #api-s4u-disk
 
 .. |API_s4u_VirtualMachine| replace:: **VirtualMachines**
 
@@ -138,12 +138,16 @@ provides many helper functions to simplify the code of actors.
 
 .. |API_s4u_Mutex| replace:: **Mutex**
 
+.. _s4u_Activities:
+
 Activities
 **********
 
 Activities represent the actions that consume a resource, such as a
-:ref:`s4u::Comm <API_s4u_Comm>` that consumes the *transmitting power* of
-:ref:`s4u::Link <API_s4u_Link>` resources.
+:ref:`Comm <API_s4u_Comm>` that consumes the *transmitting power* of 
+:ref:`Link <API_s4u_Link>` resources, or an :ref:`Exec <API_s4u_Exec>`
+that consumes the *computing power* of :ref:`Host <API_s4u_Host>` resources.
+See also the :ref:`full API <API_s4u_Activity>` below.
 
 =======================
 Asynchronous Activities
@@ -384,14 +388,36 @@ Static methods working on the current actor (see :ref:`API_s4u_Actor`).
 
 .. _API_s4u_Activity:
 
-=============
-s4u::Activity
-=============
+==============
+class Activity
+==============
+
+.. autodoxyclass:: simgrid::s4u::Activity
+
+   **Known subclasses:**
+   :ref:`Communications <API_s4u_Comm>` (started on Mailboxes and consuming links),
+   :ref:`Executions <API_s4u_Exec>` (started on Host and consuming CPU resources)
+   :ref:`I/O <API_s4u_Io>` (started on and consumming disks).
+   See also the :ref:`section on activities <s4u_Activities>` above.
+
+Querying info about activities
+------------------------------
+
+   .. autodoxymethod:: simgrid::s4u::Activity::get_remaining()
+   .. autodoxymethod:: simgrid::s4u::Activity::get_state()
+   .. autodoxymethod:: simgrid::s4u::Activity::set_remaining(double remains)
+   .. autodoxymethod:: simgrid::s4u::Activity::get_impl
+
+Activities lifecycle
+--------------------
+
+   .. autodoxymethod:: simgrid::s4u::Activity::cancel
+   .. autodoxymethod:: simgrid::s4u::Activity::start
+   .. autodoxymethod:: simgrid::s4u::Activity::test
+   .. autodoxymethod:: simgrid::s4u::Activity::wait
+   .. autodoxymethod:: simgrid::s4u::Activity::wait_for
+   .. autodoxymethod:: simgrid::s4u::Activity::wait_until(double time_limit)
 
-.. doxygenclass:: simgrid::s4u::Activity
-   :members:
-   :protected-members:
-   :undoc-members:
 
 .. _API_s4u_Actor:
 
@@ -405,175 +431,162 @@ class Actor
 
 .. autodoxyclass:: simgrid::s4u::Actor
 
-   .. rubric:: Table of contents
+Creating actors
+---------------
 
-   - :ref:`API_s4u_Actor_create`
-   - :ref:`API_s4u_Actor_search`
-   - :ref:`API_s4u_Actor_query`
-   - :ref:`API_s4u_Actor_suspend`
-   - :ref:`API_s4u_Actor_kill`
-   - :ref:`API_s4u_Actor_ending`
-   - :ref:`API_s4u_Actor_signals`
+.. tabs::
 
-   |hr|
+   .. group-tab:: C++
 
-   .. _API_s4u_Actor_create:
+      .. autodoxymethod:: simgrid::s4u::Actor::create(const std::string &name, s4u::Host *host, const std::function< void()> &code)
+      .. autodoxymethod:: simgrid::s4u::Actor::create(const std::string &name, s4u::Host *host, F code)
+      .. autodoxymethod:: simgrid::s4u::Actor::create(const std::string &name, s4u::Host *host, F code, Args... args)
+      .. autodoxymethod:: simgrid::s4u::Actor::create(const std::string &name, s4u::Host *host, const std::string &function, std::vector< std::string > args)
 
-   .. rubric:: Creating actors :ref:`(back to top) <API_s4u_Actor>`
+      .. autodoxymethod:: simgrid::s4u::Actor::init(const std::string &name, s4u::Host *host)
+      .. autodoxymethod:: simgrid::s4u::Actor::start(const std::function< void()> &code)
 
-   .. tabs::
+   .. group-tab:: Python
 
-      .. group-tab:: C++
+      .. automethod:: simgrid.Actor.create
 
-         .. autodoxymethod:: simgrid::s4u::Actor::create(const std::string &name, s4u::Host *host, const std::function< void()> &code)
-         .. autodoxymethod:: simgrid::s4u::Actor::create(const std::string &name, s4u::Host *host, F code)
-         .. autodoxymethod:: simgrid::s4u::Actor::create(const std::string &name, s4u::Host *host, F code, Args... args)
-         .. autodoxymethod:: simgrid::s4u::Actor::create(const std::string &name, s4u::Host *host, const std::string &function, std::vector< std::string > args)
+Searching specific actors
+-------------------------
 
-         .. autodoxymethod:: simgrid::s4u::Actor::init(const std::string &name, s4u::Host *host)
-         .. autodoxymethod:: simgrid::s4u::Actor::start(const std::function< void()> &code)
+.. tabs::
 
-      .. group-tab:: Python
+   .. group-tab:: C++
 
-         .. automethod:: simgrid.Actor.create
+      .. autodoxymethod:: simgrid::s4u::Actor::by_pid(aid_t pid)
+      .. autodoxymethod:: simgrid::s4u::Actor::self()
 
-   .. _API_s4u_Actor_search:
+   .. group-tab:: Python
 
-   .. rubric:: Searching specific actors :ref:`(back to top) <API_s4u_Actor>`
+      .. automethod:: simgrid.Actor.by_pid
+      .. automethod:: simgrid.Actor.self
 
-   .. tabs::
+Querying info about actors
+--------------------------
 
-      .. group-tab:: C++
+.. tabs::
 
-         .. autodoxymethod:: simgrid::s4u::Actor::by_pid(aid_t pid)
-         .. autodoxymethod:: simgrid::s4u::Actor::self()
+   .. group-tab:: C++
 
-      .. group-tab:: Python
+      .. autodoxymethod:: simgrid::s4u::Actor::get_cname
+      .. autodoxymethod:: simgrid::s4u::Actor::get_name
+      .. autodoxymethod:: simgrid::s4u::Actor::get_pid
+      .. autodoxymethod:: simgrid::s4u::Actor::get_ppid
+      .. autodoxymethod:: simgrid::s4u::Actor::get_properties() const
+      .. autodoxymethod:: simgrid::s4u::Actor::get_property(const std::string &key) const
+      .. autodoxymethod:: simgrid::s4u::Actor::set_property(const std::string &key, const std::string &value) 
 
-         .. automethod:: simgrid.Actor.by_pid
-         .. automethod:: simgrid.Actor.self
+      .. autodoxymethod:: simgrid::s4u::Actor::get_host
+      .. autodoxymethod:: simgrid::s4u::Actor::migrate
 
-   .. _API_s4u_Actor_query:
+      .. autodoxymethod:: simgrid::s4u::Actor::get_refcount()
+      .. autodoxymethod:: simgrid::s4u::Actor::get_impl
 
-   .. rubric:: Querying info about actors :ref:`(back to top) <API_s4u_Actor>`
+   .. group-tab:: Python
+                  
+      .. autoattribute:: simgrid.Actor.name
+      .. autoattribute:: simgrid.Actor.host
+      .. autoattribute:: simgrid.Actor.pid
+      .. autoattribute:: simgrid.Actor.ppid
 
-   .. tabs::
+      .. automethod:: simgrid.Actor.migrate
 
-         .. group-tab:: C++
+Suspending and resuming actors
+------------------------------
 
-            .. autodoxymethod:: simgrid::s4u::Actor::get_cname
-            .. autodoxymethod:: simgrid::s4u::Actor::get_name
-            .. autodoxymethod:: simgrid::s4u::Actor::get_pid
-            .. autodoxymethod:: simgrid::s4u::Actor::get_ppid
-            .. autodoxymethod:: simgrid::s4u::Actor::get_properties() const
-            .. autodoxymethod:: simgrid::s4u::Actor::get_property(const std::string &key) const
-            .. autodoxymethod:: simgrid::s4u::Actor::set_property(const std::string &key, const std::string &value) 
+.. tabs::
 
-            .. autodoxymethod:: simgrid::s4u::Actor::get_host
-            .. autodoxymethod:: simgrid::s4u::Actor::migrate
+   .. group-tab:: C++
 
-            .. autodoxymethod:: simgrid::s4u::Actor::get_refcount()
-            .. autodoxymethod:: simgrid::s4u::Actor::get_impl()
+      .. autodoxymethod:: simgrid::s4u::Actor::suspend()
+      .. autodoxymethod:: simgrid::s4u::Actor::resume()
+      .. autodoxymethod:: simgrid::s4u::Actor::is_suspended()
 
-         .. group-tab:: Python
+   .. group-tab:: Python
 
-            .. autoattribute:: simgrid.Actor.name
-            .. autoattribute:: simgrid.Actor.host
-            .. autoattribute:: simgrid.Actor.pid
-            .. autoattribute:: simgrid.Actor.ppid
+      .. automethod:: simgrid.Actor.resume
+      .. automethod:: simgrid.Actor.suspend
+      .. automethod:: simgrid.Actor.is_suspended
 
-            .. automethod:: simgrid.Actor.migrate
+Killing actors
+--------------
 
-   .. _API_s4u_Actor_suspend:
+.. tabs::
 
-   .. rubric:: Suspending and resuming actors :ref:`(back to top) <API_s4u_Actor>`
+   .. group-tab:: C++
 
-   .. tabs::
+      .. autodoxymethod:: simgrid::s4u::Actor::kill()
+      .. autodoxymethod:: simgrid::s4u::Actor::kill_all()
+      .. autodoxymethod:: simgrid::s4u::Actor::set_kill_time(double time)
+      .. autodoxymethod:: simgrid::s4u::Actor::get_kill_time()
 
-      .. group-tab:: C++
+      .. autodoxymethod:: simgrid::s4u::Actor::restart()
+      .. autodoxymethod:: simgrid::s4u::Actor::daemonize()
+      .. autodoxymethod:: simgrid::s4u::Actor::is_daemon
 
-         .. autodoxymethod:: simgrid::s4u::Actor::suspend()
-         .. autodoxymethod:: simgrid::s4u::Actor::resume()
-         .. autodoxymethod:: simgrid::s4u::Actor::is_suspended()
+   .. group-tab:: Python
 
-      .. group-tab:: Python
+      .. automethod:: simgrid.Actor.kill
+      .. automethod:: simgrid.Actor.kill_all
 
-         .. automethod:: simgrid.Actor.resume
-         .. automethod:: simgrid.Actor.suspend
-         .. automethod:: simgrid.Actor.is_suspended
+      .. automethod:: simgrid.Actor.daemonize
+      .. automethod:: simgrid.Actor.is_daemon
 
-   .. _API_s4u_Actor_kill:
+Reacting to the end of actors
+-----------------------------
 
-   .. rubric:: Killing actors :ref:`(back to top) <API_s4u_Actor>`
+.. tabs::
 
-   .. tabs::
+   .. group-tab:: C++
 
-      .. group-tab:: C++
-
-         .. autodoxymethod:: simgrid::s4u::Actor::kill()
-         .. autodoxymethod:: simgrid::s4u::Actor::kill_all()
-         .. autodoxymethod:: simgrid::s4u::Actor::set_kill_time(double time)
-         .. autodoxymethod:: simgrid::s4u::Actor::get_kill_time()
-
-         .. autodoxymethod:: simgrid::s4u::Actor::restart()
-         .. autodoxymethod:: simgrid::s4u::Actor::daemonize()
-         .. autodoxymethod:: simgrid::s4u::Actor::is_daemon
+      .. autodoxymethod:: simgrid::s4u::Actor::on_exit
+      .. autodoxymethod:: simgrid::s4u::Actor::join()
+      .. autodoxymethod:: simgrid::s4u::Actor::join(double timeout)
+      .. autodoxymethod:: simgrid::s4u::Actor::set_auto_restart(bool autorestart)
 
-      .. group-tab:: Python
+   .. group-tab:: Python
 
-         .. automethod:: simgrid.Actor.kill
-         .. automethod:: simgrid.Actor.kill_all
+      .. automethod:: simgrid.Actor.join
 
-         .. automethod:: simgrid.Actor.daemonize
-         .. automethod:: simgrid.Actor.is_daemon
+Signals
+-------
 
-   .. _API_s4u_Actor_ending:
+.. tabs::
 
-   .. rubric:: Reacting to the end of actors :ref:`(back to top) <API_s4u_Actor>`
+   .. group-tab:: C++
 
-   .. tabs::
-
-      .. group-tab:: C++
+      .. autodoxyvar:: simgrid::s4u::Actor::on_creation
+      .. autodoxyvar:: simgrid::s4u::Actor::on_suspend
+      .. autodoxyvar:: simgrid::s4u::Actor::on_resume
+      .. autodoxyvar:: simgrid::s4u::Actor::on_sleep
+      .. autodoxyvar:: simgrid::s4u::Actor::on_wake_up
+      .. autodoxyvar:: simgrid::s4u::Actor::on_migration_start
+      .. autodoxyvar:: simgrid::s4u::Actor::on_migration_end
+      .. autodoxyvar:: simgrid::s4u::Actor::on_termination
+      .. autodoxyvar:: simgrid::s4u::Actor::on_destruction
 
-         .. autodoxymethod:: simgrid::s4u::Actor::on_exit(const std::function< void(bool)> &fun)
-         .. autodoxymethod:: simgrid::s4u::Actor::join()
-         .. autodoxymethod:: simgrid::s4u::Actor::join(double timeout)
-         .. autodoxymethod:: simgrid::s4u::Actor::set_auto_restart(bool autorestart)
-
-      .. group-tab:: Python
+.. _API_s4u_Barrier:
 
-         .. automethod:: simgrid.Actor.join
+=============
+class Barrier
+=============
 
-   .. _API_s4u_Actor_signals:
+.. doxygentypedef:: BarrierPtr
 
-   .. rubric:: Signals :ref:`(back to top) <API_s4u_Actor>`
+.. autodoxyclass:: simgrid::s4u::Barrier
 
    .. tabs::
 
       .. group-tab:: C++
 
-         .. autodoxyvar:: simgrid::s4u::Actor::on_creation
-         .. autodoxyvar:: simgrid::s4u::Actor::on_suspend
-         .. autodoxyvar:: simgrid::s4u::Actor::on_resume
-         .. autodoxyvar:: simgrid::s4u::Actor::on_sleep
-         .. autodoxyvar:: simgrid::s4u::Actor::on_wake_up
-         .. autodoxyvar:: simgrid::s4u::Actor::on_migration_start
-         .. autodoxyvar:: simgrid::s4u::Actor::on_migration_end
-         .. autodoxyvar:: simgrid::s4u::Actor::on_termination
-         .. autodoxyvar:: simgrid::s4u::Actor::on_destruction
+         .. autodoxymethod:: simgrid::s4u::Barrier::Barrier(unsigned int count)
+         .. autodoxymethod:: simgrid::s4u::Barrier::create(unsigned int expected_actors)
+         .. autodoxymethod:: simgrid::s4u::Barrier::wait()
 
-.. _API_s4u_Barrier:
-
-============
-s4u::Barrier
-============
-
-.. doxygentypedef:: BarrierPtr
-
-.. doxygenclass:: simgrid::s4u::Barrier
-   :members:
-   :protected-members:
-   :undoc-members:
 
 .. _API_s4u_Comm: