+ .. doxygenfunction:: simgrid::s4u::Io::get_performed_ioops() const
+ .. doxygenfunction:: simgrid::s4u::Io::get_remaining
+
+Life cycle
+----------
+
+.. tabs::
+
+ .. group-tab:: C++
+
+ .. doxygenfunction:: simgrid::s4u::Io::cancel
+ .. doxygenfunction:: simgrid::s4u::Io::start
+ .. doxygenfunction:: simgrid::s4u::Io::test
+ .. doxygenfunction:: simgrid::s4u::Io::wait
+
+ .. group-tab:: Python
+
+ .. automethod:: simgrid.Io.test
+ .. automethod:: simgrid.Io.wait
+
+Signals
+-------
+
+.. tabs::
+
+ .. group-tab:: C++
+
+ .. doxygenfunction:: simgrid::s4u::Io::on_start_cb
+ .. doxygenfunction:: simgrid::s4u::Io::on_this_start_cb
+ .. doxygenfunction:: simgrid::s4u::Io::on_completion_cb
+ .. doxygenfunction:: simgrid::s4u::Io::on_this_completion_cb
+
+ .. doxygenfunction:: simgrid::s4u::Io::on_suspended_cb
+ .. doxygenfunction:: simgrid::s4u::Io::on_resumed_cb
+ .. doxygenfunction:: simgrid::s4u::Io::on_veto_cb
+ .. doxygenfunction:: simgrid::s4u::Io::on_this_veto_cb
+
+.. _API_s4u_ActivitySet:
+
+====================
+ class ActivitySet
+====================
+
+.. tabs::
+
+ .. group-tab:: C++
+
+ .. doxygenclass:: simgrid::s4u::ActivitySet
+
+ .. group-tab:: Python
+
+ .. autoclass:: simgrid.ActivitySet
+
+ .. group-tab:: C
+
+ .. doxygentypedef:: sg_activity_set_t
+ .. doxygentypedef:: const_sg_activity_set_t
+
+Basic management
+----------------
+
+.. tabs::
+
+ .. group-tab:: C++
+
+ .. code-block:: C++
+
+ #include <simgrid/s4u/ActivitySet.hpp>
+
+ .. doxygentypedef:: ActivitySetPtr
+
+ .. group-tab:: Python
+
+ .. code:: Python
+
+ from simgrid import ActivitySet
+
+ .. group-tab:: C
+
+ .. code-block:: C
+
+ #include <simgrid/activity_set.h>
+
+ .. doxygenfunction:: sg_activity_set_init
+ .. doxygenfunction:: sg_activity_set_delete
+
+Managing activities
+-------------------
+
+.. tabs::
+
+ .. group-tab:: C++
+
+ .. doxygenfunction:: simgrid::s4u::ActivitySet::push
+ .. doxygenfunction:: simgrid::s4u::ActivitySet::erase
+ .. doxygenfunction:: simgrid::s4u::ActivitySet::empty
+ .. doxygenfunction:: simgrid::s4u::ActivitySet::size
+
+ .. group-tab:: Python
+
+ .. automethod:: simgrid.ActivitySet.push()
+ .. automethod:: simgrid.ActivitySet.erase()
+ .. automethod:: simgrid.ActivitySet.empty()
+ .. automethod:: simgrid.ActivitySet.size()
+
+ .. group-tab:: c
+
+ .. doxygenfunction:: sg_activity_set_push
+ .. doxygenfunction:: sg_activity_set_erase
+ .. doxygenfunction:: sg_activity_set_empty
+ .. doxygenfunction:: sg_activity_set_size
+
+Interacting with the set
+------------------------
+
+.. tabs::
+
+ .. group-tab:: C++
+
+ .. doxygenfunction:: simgrid::s4u::ActivitySet::test_any
+ .. doxygenfunction:: simgrid::s4u::ActivitySet::wait_all
+ .. doxygenfunction:: simgrid::s4u::ActivitySet::wait_all_for
+ .. doxygenfunction:: simgrid::s4u::ActivitySet::wait_any
+ .. doxygenfunction:: simgrid::s4u::ActivitySet::wait_any_for
+
+ .. group-tab:: Python
+
+ .. automethod:: simgrid.ActivitySet.test_any()
+ .. automethod:: simgrid.ActivitySet.wait_all()
+ .. automethod:: simgrid.ActivitySet.wait_all_for()
+ .. automethod:: simgrid.ActivitySet.wait_any()
+ .. automethod:: simgrid.ActivitySet.wait_any_for()
+
+ .. group-tab:: c
+
+ .. doxygenfunction:: sg_activity_set_test_any
+ .. doxygenfunction:: sg_activity_set_wait_all
+ .. doxygenfunction:: sg_activity_set_wait_all_for
+ .. doxygenfunction:: sg_activity_set_wait_any
+ .. doxygenfunction:: sg_activity_set_wait_any_for
+ .. doxygenfunction:: sg_activity_unref
+
+Dealing with failed activities
+------------------------------
+
+.. tabs::
+
+ .. group-tab:: C++
+
+ .. doxygenfunction:: simgrid::s4u::ActivitySet::get_failed_activity()
+ .. doxygenfunction:: simgrid::s4u::ActivitySet::has_failed_activities()
+
+.. _API_s4u_Tasks:
+
+==========
+Tasks
+==========
+
+==============
+class Task
+==============
+
+.. doxygenclass:: simgrid::s4u::Task
+
+**Known subclasses:**
+:ref:`Communication Tasks <API_s4u_CommTask>`,
+:ref:`Executions Tasks <API_s4u_ExecTask>`,
+:ref:`I/O Tasks <API_s4u_IoTask>`.
+See also the :ref:`section on activities <s4u_Tasks>` above.
+
+Basic management
+----------------
+
+.. tabs::
+
+ .. group-tab:: C++
+
+ .. code-block:: C++
+
+ #include <simgrid/s4u/Task.hpp>
+
+ .. doxygentypedef:: TaskPtr
+
+Querying info
+-------------
+
+.. tabs::
+
+ .. group-tab:: C++
+
+ .. doxygenfunction:: simgrid::s4u::Task::get_cname() const
+ .. doxygenfunction:: simgrid::s4u::Task::get_name() const
+ .. doxygenfunction:: simgrid::s4u::Task::get_count(std::string instance) const
+ .. doxygenfunction:: simgrid::s4u::Task::get_amount(std::string instance) const
+ .. doxygenfunction:: simgrid::s4u::Task::get_queued_firings(std::string instance) const
+ .. doxygenfunction:: simgrid::s4u::Task::get_running_count(std::string instance) const
+ .. doxygenfunction:: simgrid::s4u::Task::get_parallelism_degree(std::string instance) const
+ .. doxygenfunction:: simgrid::s4u::Task::set_name(std::string name)