<object id="TOC" data="graphical-toc.svg" width="100%" type="image/svg+xml"></object>
<script>
window.onload=function() { // Wait for the SVG to be loaded before changing it
- var elem=document.querySelector("#TOC").contentDocument.getElementById("S4UBox")
- elem.style="opacity:0.93999999;fill:#ff0000;fill-opacity:0.1";
+ var elem=document.querySelector("#TOC").contentDocument.getElementById("ActorBox")
+ elem.style="opacity:0.93999999;fill:#ff0000;fill-opacity:0.1;stroke:#000000;stroke-width:0.35277778;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1";
}
</script>
<br/>
For sake of simplicity, we use `RAII
<https://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization>`_
-everywhere in S4U. This is an idiom where resources are automatically
+for many classes in S4U. This is an idiom where resources are automatically
managed through the context. Provided that you never manipulate
objects of type Foo directly but always FooPtr references (which are
defined as `boost::intrusive_ptr
<http://www.boost.org/doc/libs/1_61_0/libs/smart_ptr/intrusive_ptr.html>`_
<Foo>), you will never have to explicitely release the resource that
you use nor to free the memory of unused objects.
-
Here is a little example:
.. code-block:: cpp
} // The mutex gets automatically freed because the only existing reference gets out of scope
-API C++ Reference
+Note that Mailboxes, Hosts and Links are not handled thought smart
+pointers (yet?). This means that it is currently impossible to destroy a
+mailbox or a link. You can still destroy an host (but probably
+shouldn't), using :cpp:func:`simgrid::s4u::Host::destroy`.
+
+C++ API Reference
*****************
.. _API_s4u_this_actor:
:protected-members:
:undoc-members:
+.. _API_s4u_ExecSeq:
+
+============
+s4u::ExecSeq
+============
+
+.. doxygentypedef:: ExecSeqPtr
+
+.. doxygenclass:: simgrid::s4u::ExecSeq
+ :members:
+ :protected-members:
+ :undoc-members:
+
+.. _API_s4u_ExecPar:
+
+============
+s4u::ExecPar
+============
+
+.. doxygentypedef:: ExecParPtr
+
+.. doxygenclass:: simgrid::s4u::ExecPar
+ :members:
+ :protected-members:
+ :undoc-members:
+
.. _API_s4u_Host:
=========
Please also refer to the :ref:`full doc on s4u::Mailbox <s4u_mailbox>`.
-.. doxygentypedef:: MailboxPtr
-
.. doxygenclass:: simgrid::s4u::Mailbox
:members:
:protected-members:
The Python API is generated with pybind11. It closely mimicks the C++
API, to which you should refer for more information.
-=========
-Functions
-=========
+==========
+this_actor
+==========
-.. automodule:: simgrid
+.. automodule:: simgrid.this_actor
:members:
- :exclude-members: Actor, Host, Engine
===========
Class Actor
.. autoclass:: simgrid.Actor
:members:
+==========
+Class Comm
+==========
+
+.. autoclass:: simgrid.Comm
+ :members:
+
============
Class Engine
============
.. autoclass:: simgrid.Engine
:members:
+==========
+Class Exec
+==========
+
+.. autoclass:: simgrid.Exec
+ :members:
+
==========
Class Host
==========
.. autoclass:: simgrid.Host
:members:
+
+=============
+Class Mailbox
+=============
+
+.. autoclass:: simgrid.Mailbox
+ :members: