A plugin can get some additional code executed within the SimGrid
kernel, and attach the data needed by that code to the SimGrid
-objects.
+objects.
-The host load plugin in
+The host load plugin in
`src/plugins/host_load.cpp <https://framagit.org/simgrid/simgrid/tree/master/src/plugins/host_load.cpp>`_
constitutes a good introductory example. It defines a class
``HostLoad`` that is meant to be attached to each host. This class
.. cpp:class:: template<class R, class... P> simgrid::xbt::signal<R(P...)>
- A signal/slot mechanism, where you can attach callbacks to a given signal, and then fire the signal.
+ A signal/slot mechanism, where you can attach callbacks to a given signal, and then fire the signal.
The template parameter is the function signature of the signal (the return value currently ignored).
Partial list of existing signals in s4u:
-- :cpp:member:`Actor::on_creation <simgrid::s4u::Actor::on_creation>`
- :cpp:member:`Actor::on_suspend <simgrid::s4u::Actor::on_suspend>`
- :cpp:member:`Actor::on_resume <simgrid::s4u::Actor::on_resume>`
- :cpp:member:`Actor::on_sleep <simgrid::s4u::Actor::on_sleep>`
- :cpp:member:`Actor::on_wake_up <simgrid::s4u::Actor::on_wake_up>`
- :cpp:member:`Actor::on_host_change <simgrid::s4u::Actor::on_host_change>`
- :cpp:member:`Actor::on_termination <simgrid::s4u::Actor::on_termination>`
- :cpp:member:`Actor::on_destruction <simgrid::s4u::Actor::on_destruction>`
-- :cpp:member:`Comm::on_start <simgrid::s4u::Comm::on_start>`
- :cpp:member:`Comm::on_completion <simgrid::s4u::Comm::on_completion>`
-- :cpp:member:`Engine::on_platform_creation <simgrid::s4u::Engine::on_platform_creation>`
- :cpp:member:`Engine::on_platform_created <simgrid::s4u::Engine::on_platform_created>`
- :cpp:member:`Engine::on_time_advance <simgrid::s4u::Engine::on_time_advance>`
- :cpp:member:`Engine::on_simulation_end <simgrid::s4u::Engine::on_simulation_end>`
- :cpp:member:`Engine::on_deadlock <simgrid::s4u::Engine::on_deadlock>`
-- :cpp:member:`Exec::on_start <simgrid::s4u::Exec::on_start>`
- :cpp:member:`Exec::on_completion <simgrid::s4u::Exec::on_completion>`
-- :cpp:member:`Host::on_creation <simgrid::s4u::Host::on_creation>`
- :cpp:member:`Host::on_destruction <simgrid::s4u::Host::on_destruction>`
- :cpp:member:`Host::on_state_change <simgrid::s4u::Host::on_state_change>`
- :cpp:member:`Host::on_speed_change <simgrid::s4u::Host::on_speed_change>`
-- :cpp:member:`Link::on_creation <simgrid::s4u::Link::on_creation>`
- :cpp:member:`Link::on_destruction <simgrid::s4u::Link::on_destruction>`
- :cpp:member:`Link::on_state_change <simgrid::s4u::Link::on_state_change>`
- :cpp:member:`Link::on_speed_change <simgrid::s4u::Link::on_bandwidth_change>`
- :cpp:member:`Link::on_communicate <simgrid::s4u::Link::on_communicate>`
- :cpp:member:`Link::on_communication_state_change <simgrid::s4u::Link::on_communication_state_change>`
-- :cpp:member:`NetZone::on_creation <simgrid::s4u::NetZone::on_creation>`
- :cpp:member:`NetZone::on_seal <simgrid::s4u::NetZone::on_seal>`
- :cpp:member:`NetZone::on_route_creation <simgrid::s4u::NetZone::on_route_creation>`
-- :cpp:member:`VirtualMachine::on_start <simgrid::s4u::VirtualMachine::on_start>`
- :cpp:member:`VirtualMachine::on_started <simgrid::s4u::VirtualMachine::on_started>`
- :cpp:member:`VirtualMachine::on_suspend <simgrid::s4u::VirtualMachine::on_suspend>`
- :cpp:member:`VirtualMachine::on_resume <simgrid::s4u::VirtualMachine::on_resume>`
- :cpp:member:`VirtualMachine::on_migration_start <simgrid::s4u::VirtualMachine::on_migration_start>`
- :cpp:member:`VirtualMachine::on_migration_end <simgrid::s4u::VirtualMachine::on_migration_end>`
+- :cpp:func:`Actor::on_creation <simgrid::s4u::Actor::on_creation_cb>`
+ :cpp:func:`Actor::on_suspend <simgrid::s4u::Actor::on_suspend_cb>`
+ :cpp:func:`Actor::on_resume <simgrid::s4u::Actor::on_resume_cb>`
+ :cpp:func:`Actor::on_sleep <simgrid::s4u::Actor::on_sleep_cb>`
+ :cpp:func:`Actor::on_wake_up <simgrid::s4u::Actor::on_wake_up_cb>`
+ :cpp:func:`Actor::on_host_change <simgrid::s4u::Actor::on_host_change_cb>`
+ :cpp:func:`Actor::on_termination <simgrid::s4u::Actor::on_termination_cb>`
+ :cpp:func:`Actor::on_destruction <simgrid::s4u::Actor::on_destruction_cb>`
+- :cpp:func:`Comm::on_send <simgrid::s4u::Comm::on_send_cb>`
+ :cpp:func:`Comm::on_recv <simgrid::s4u::Comm::on_recv_cb>`
+ :cpp:func:`Comm::on_completion <simgrid::s4u::Comm::on_completion_cb>`
+- :cpp:func:`CommImpl::on_start <simgrid::s4u::Comm::on_start_cb>`
+ :cpp:func:`CommImpl::on_completion <simgrid::s4u::Comm::on_completion_cb>`
+- :cpp:func:`Disk::on_creation <simgrid::s4u::Disk::on_creation_cb>`
+ :cpp:func:`Disk::on_destruction <simgrid::s4u::Disk::on_destruction_cb>`
+ :cpp:func:`Disk::on_state_change <simgrid::s4u::Disk::on_state_change_cb>`
+- :cpp:func:`Engine::on_platform_creation <simgrid::s4u::Engine::on_platform_creation_cb>`
+ :cpp:func:`Engine::on_platform_created <simgrid::s4u::Engine::on_platform_created_cb>`
+ :cpp:func:`Engine::on_time_advance <simgrid::s4u::Engine::on_time_advance_cb>`
+ :cpp:func:`Engine::on_simulation_end <simgrid::s4u::Engine::on_simulation_end_cb>`
+ :cpp:func:`Engine::on_deadlock <simgrid::s4u::Engine::on_deadlock_cb>`
+- :cpp:func:`Exec::on_start <simgrid::s4u::Exec::on_start_cb>`
+ :cpp:func:`Exec::on_completion <simgrid::s4u::Exec::on_completion_cb>`
+- :cpp:func:`Host::on_creation <simgrid::s4u::Host::on_creation_cb>`
+ :cpp:func:`Host::on_destruction <simgrid::s4u::Host::on_destruction_cb>`
+ :cpp:func:`Host::on_state_change <simgrid::s4u::Host::on_state_change_cb>`
+ :cpp:func:`Host::on_speed_change <simgrid::s4u::Host::on_speed_change_cb>`
+- :cpp:func:`Io::on_start <simgrid::s4u::Io::on_start_cb>`
+ :cpp:func:`Io::on_completion <simgrid::s4u::Io::on_completion_cb>`
+- :cpp:func:`Link::on_creation <simgrid::s4u::Link::on_creation_cb>`
+ :cpp:func:`Link::on_destruction <simgrid::s4u::Link::on_destruction_cb>`
+ :cpp:func:`Link::on_state_change <simgrid::s4u::Link::on_state_change_cb>`
+ :cpp:func:`Link::on_speed_change <simgrid::s4u::Link::on_bandwidth_change_cb>`
+ :cpp:func:`Link::on_communication_state_change <simgrid::s4u::Link::on_communication_state_change_cb>`
+- :cpp:func:`NetZone::on_creation <simgrid::s4u::NetZone::on_creation_cb>`
+ :cpp:func:`NetZone::on_seal <simgrid::s4u::NetZone::on_seal_cb>`
+- :cpp:func:`VirtualMachine::on_start <simgrid::s4u::VirtualMachine::on_start_cb>`
+ :cpp:func:`VirtualMachine::on_started <simgrid::s4u::VirtualMachine::on_started_cb>`
+ :cpp:func:`VirtualMachine::on_suspend <simgrid::s4u::VirtualMachine::on_suspend_cb>`
+ :cpp:func:`VirtualMachine::on_resume <simgrid::s4u::VirtualMachine::on_resume_cb>`
+ :cpp:func:`VirtualMachine::on_migration_start <simgrid::s4u::VirtualMachine::on_migration_start_cb>`
+ :cpp:func:`VirtualMachine::on_migration_end <simgrid::s4u::VirtualMachine::on_migration_end_cb>`
Existing Plugins
****************
.. doxygengroup:: plugin_filesystem
-.. doxygentypedef:: sg_file_t
-.. doxygentypedef:: const_sg_file_t
.. LocalWords: SimGrid
-