From: Martin Quinson Date: Tue, 23 May 2023 21:20:44 +0000 (+0200) Subject: Rename Resource::on_state_change to Resource::on_onoff for sake of clarity X-Git-Tag: v3.34~105 X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/2ebaf33a6383b8e8c1e7cabe73b686b291a18623 Rename Resource::on_state_change to Resource::on_onoff for sake of clarity --- diff --git a/ChangeLog b/ChangeLog index 1b96e01645..7e2ff0a63b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -28,6 +28,8 @@ S4U: s4u::Actor::on_this_suspend_cb() adds a callback for this specific actor only. - Activity::on_suspended_cb() is renamed to Activity::on_suspend_cb(), and fired right before the suspend. - Activity::on_resumed_cb() is renamed to Activity::on_resume_cb(), and fired right before the resume. + - Resource::on_state_change_cb() is renamed to Resource::on_onoff_cb() to distinguish from the + Activity::on_state_change_cb() that is related to the activity state machine, not on/off. New S4U plugins: - Operation: They are designed to represent workflows, i.e, graphs of repeatable Activities. diff --git a/docs/source/app_s4u.rst b/docs/source/app_s4u.rst index 8a3bf67168..151d52a722 100644 --- a/docs/source/app_s4u.rst +++ b/docs/source/app_s4u.rst @@ -1213,8 +1213,8 @@ Signals .. doxygenfunction:: simgrid::s4u::Disk::on_creation_cb .. doxygenfunction:: simgrid::s4u::Disk::on_destruction_cb .. doxygenfunction:: simgrid::s4u::Disk::on_this_destruction_cb - .. doxygenfunction:: simgrid::s4u::Disk::on_state_change_cb - .. doxygenfunction:: simgrid::s4u::Disk::on_this_state_change_cb + .. doxygenfunction:: simgrid::s4u::Disk::on_onoff_cb + .. doxygenfunction:: simgrid::s4u::Disk::on_this_onoff_cb .. _API_s4u_Host: @@ -1500,8 +1500,9 @@ Signals .. doxygenfunction:: simgrid::s4u::Host::on_this_destruction_cb .. doxygenfunction:: simgrid::s4u::Host::on_speed_change_cb .. doxygenfunction:: simgrid::s4u::Host::on_this_speed_change_cb - .. doxygenfunction:: simgrid::s4u::Host::on_state_change_cb - .. doxygenfunction:: simgrid::s4u::Host::on_this_state_change_cb + .. doxygenfunction:: simgrid::s4u::Host::on_onoff_cb + .. doxygenfunction:: simgrid::s4u::Host::on_this_onoff_cb + .. doxygenfunction:: simgrid::s4u::Host::on_exec_state_change_cb .. _API_s4u_Link: @@ -1717,8 +1718,8 @@ Signals .. doxygenfunction:: simgrid::s4u::Link::on_creation_cb .. doxygenfunction:: simgrid::s4u::Link::on_destruction_cb .. doxygenfunction:: simgrid::s4u::Link::on_this_destruction_cb - .. doxygenfunction:: simgrid::s4u::Link::on_state_change_cb - .. doxygenfunction:: simgrid::s4u::Link::on_this_state_change_cb + .. doxygenfunction:: simgrid::s4u::Link::on_onoff_cb + .. doxygenfunction:: simgrid::s4u::Link::on_this_onoff_cb .. _API_s4u_NetZone: diff --git a/include/simgrid/s4u/Disk.hpp b/include/simgrid/s4u/Disk.hpp index 46fc2f72e3..4e6dc99273 100644 --- a/include/simgrid/s4u/Disk.hpp +++ b/include/simgrid/s4u/Disk.hpp @@ -139,17 +139,29 @@ public: static void on_destruction_cb(const std::function& cb) { on_destruction.connect(cb); } /** @brief Add a callback fired when this specific Disk is destroyed */ void on_this_destruction_cb(const std::function& cb) { on_this_destruction.connect(cb); } - /** @brief Add a callback fired when the state of any Disk changes */ - static void on_state_change_cb(const std::function& cb) { on_state_change.connect(cb); } - /** @brief Add a callback fired when the state of this specific Disk changes */ - void on_this_state_change_cb(const std::function& cb) { on_this_state_change.connect(cb); } + /** @brief Add a callback fired when any Disk is turned on or off */ + static void on_onoff_cb(const std::function& cb) + { + on_onoff.connect(cb); + } + /** @brief Add a callback fired when this specific Disk is turned on or off */ + void on_this_onoff_cb(const std::function& cb) + { + on_this_onoff.connect(cb); + } + + XBT_ATTRIB_DEPRECATED_v337("Please use on_onoff_cb() instead") static void on_state_change_cb( + const std::function& cb) + { + on_onoff.connect(cb); + } private: static xbt::signal on_creation; static xbt::signal on_destruction; xbt::signal on_this_destruction; - static xbt::signal on_state_change; - xbt::signal on_this_state_change; + static xbt::signal on_onoff; + xbt::signal on_this_onoff; }; } // namespace s4u diff --git a/include/simgrid/s4u/Host.hpp b/include/simgrid/s4u/Host.hpp index dacce60bf4..bd8e8e569b 100644 --- a/include/simgrid/s4u/Host.hpp +++ b/include/simgrid/s4u/Host.hpp @@ -66,18 +66,26 @@ protected: public: static xbt::signal on_speed_change; xbt::signal on_this_speed_change; - static xbt::signal on_state_change; - xbt::signal on_this_state_change; + static xbt::signal on_onoff; + xbt::signal on_this_onoff; #endif /** Add a callback fired on each newly created host */ static void on_creation_cb(const std::function& cb) { on_creation.connect(cb); } /** Add a callback fired when any machine is turned on or off (called AFTER the change) */ - static void on_state_change_cb(const std::function& cb) { on_state_change.connect(cb); } + static void on_onoff_cb(const std::function& cb) + { + on_onoff.connect(cb); + } + XBT_ATTRIB_DEPRECATED_v337("Please use on_onoff_cb() instead") static void on_state_change_cb( + const std::function& cb) + { + on_onoff.connect(cb); + } /** Add a callback fired when this specific machine is turned on or off (called AFTER the change) */ - void on_this_state_change_cb(const std::function& cb) + void on_this_onoff_cb(const std::function& cb) { - on_this_state_change.connect(cb); + on_this_onoff.connect(cb); } /** Add a callback fired when the speed of any machine is changed (called AFTER the change) * (either because of a pstate switch or because of an external load event coming from the profile) */ diff --git a/include/simgrid/s4u/Link.hpp b/include/simgrid/s4u/Link.hpp index 1ddca13760..816e62a673 100644 --- a/include/simgrid/s4u/Link.hpp +++ b/include/simgrid/s4u/Link.hpp @@ -157,8 +157,8 @@ public: private: #ifndef DOXYGEN static xbt::signal on_creation; - static xbt::signal on_state_change; - xbt::signal on_this_state_change; + static xbt::signal on_onoff; + xbt::signal on_this_onoff; static xbt::signal on_bandwidth_change; xbt::signal on_this_bandwidth_change; static xbt::signal @@ -171,12 +171,15 @@ public: /* The signals */ /** @brief Add a callback fired when a new Link is created */ static void on_creation_cb(const std::function& cb) { on_creation.connect(cb); } - /** @brief Add a callback fired when the state of any Link changes (when it is turned on or off) */ - static void on_state_change_cb(const std::function& cb) { on_state_change.connect(cb); } - /** @brief Add a callback fired when the state of this specific Link changes (when it is turned on or off) */ - void on_this_state_change_cb(const std::function& cb) + /** @brief Add a callback fired when any Link is turned on or off */ + static void on_onoff_cb(const std::function& cb) { - on_this_state_change.connect(cb); + on_onoff.connect(cb); + } + /** @brief Add a callback fired when this specific Link is turned on or off */ + void on_this_onoff_cb(const std::function& cb) + { + on_this_onoff.connect(cb); } /** @brief Add a callback fired when the bandwidth of any Link changes */ static void on_bandwidth_change_cb(const std::function& cb) { on_bandwidth_change.connect(cb); } @@ -198,6 +201,12 @@ public: { on_this_destruction.connect(cb); } + + XBT_ATTRIB_DEPRECATED_v337("Please use on_onoff_cb() instead") static void on_state_change_cb( + const std::function& cb) + { + on_onoff.connect(cb); + } }; /** diff --git a/src/kernel/resource/DiskImpl.cpp b/src/kernel/resource/DiskImpl.cpp index bad94356a6..a231432488 100644 --- a/src/kernel/resource/DiskImpl.cpp +++ b/src/kernel/resource/DiskImpl.cpp @@ -61,16 +61,16 @@ void DiskImpl::turn_on() { if (not is_on()) { Resource::turn_on(); - s4u::Disk::on_state_change(piface_); - piface_.on_this_state_change(piface_); + s4u::Disk::on_onoff(piface_); + piface_.on_this_onoff(piface_); } } void DiskImpl::turn_off() { if (is_on()) { Resource::turn_off(); - s4u::Disk::on_state_change(piface_); - piface_.on_this_state_change(piface_); + s4u::Disk::on_onoff(piface_); + piface_.on_this_onoff(piface_); const kernel::lmm::Element* elem = nullptr; double now = EngineImpl::get_clock(); diff --git a/src/kernel/resource/StandardLinkImpl.cpp b/src/kernel/resource/StandardLinkImpl.cpp index 2d9f43766a..a7661a1ab7 100644 --- a/src/kernel/resource/StandardLinkImpl.cpp +++ b/src/kernel/resource/StandardLinkImpl.cpp @@ -82,7 +82,8 @@ void StandardLinkImpl::turn_on() { if (not is_on()) { Resource::turn_on(); - s4u::Link::on_state_change(piface_); + s4u::Link::on_onoff(piface_); + piface_.on_this_onoff(piface_); } } @@ -90,7 +91,8 @@ void StandardLinkImpl::turn_off() { if (is_on()) { Resource::turn_off(); - s4u::Link::on_state_change(piface_); + s4u::Link::on_onoff(piface_); + piface_.on_this_onoff(piface_); const kernel::lmm::Element* elem = nullptr; double now = EngineImpl::get_clock(); diff --git a/src/kernel/resource/VirtualMachineImpl.cpp b/src/kernel/resource/VirtualMachineImpl.cpp index dab4cad555..9603258ff3 100644 --- a/src/kernel/resource/VirtualMachineImpl.cpp +++ b/src/kernel/resource/VirtualMachineImpl.cpp @@ -55,7 +55,7 @@ std::deque VirtualMachineImpl::allVms_; */ const double virt_overhead = 1; // 0.95 -static void host_state_change(s4u::Host const& host) +static void host_onoff(s4u::Host const& host) { if (not host.is_on()) { // just turned off. std::vector trash; @@ -120,7 +120,7 @@ static void remove_active_activity(s4u::Activity const& act) VMModel::VMModel(const std::string& name) : HostModel(name) { - s4u::Host::on_state_change_cb(host_state_change); + s4u::Host::on_onoff_cb(host_onoff); s4u::Exec::on_start_cb(add_active_exec); s4u::Exec::on_completion_cb(remove_active_exec); s4u::Activity::on_resume_cb(add_active_activity); diff --git a/src/plugins/host_energy.cpp b/src/plugins/host_energy.cpp index fb2b119aca..47bfda4f36 100644 --- a/src/plugins/host_energy.cpp +++ b/src/plugins/host_energy.cpp @@ -494,7 +494,7 @@ void sg_host_energy_plugin_init() HostEnergy::EXTENSION_ID = simgrid::s4u::Host::extension_create(); simgrid::s4u::Host::on_creation_cb(&on_creation); - simgrid::s4u::Host::on_state_change_cb(&on_host_change); + simgrid::s4u::Host::on_onoff_cb(&on_host_change); simgrid::s4u::Host::on_speed_change_cb(&on_host_change); simgrid::s4u::Host::on_destruction_cb(&on_host_destruction); simgrid::s4u::Host::on_exec_state_change_cb(&on_action_state_change); diff --git a/src/plugins/host_load.cpp b/src/plugins/host_load.cpp index 9eb3d96861..c0eb520326 100644 --- a/src/plugins/host_load.cpp +++ b/src/plugins/host_load.cpp @@ -24,8 +24,7 @@ It attaches an extension to each host to store some data, and places callbacks i - :cpp:func:`simgrid::s4u::Host::on_creation_cb`: Attach a new extension to the newly created host. - :cpp:func:`simgrid::s4u::Exec::on_start_cb`: Make note that a new execution started, increasing the load. - :cpp:func:`simgrid::s4u::Exec::on_completion_cb`: Make note that an execution completed, decreasing the load. - - :cpp:func:`simgrid::s4u::Host::on_state_change_cb`: Do what is appropriate when the host gets suspended, turned off - or similar. + - :cpp:func:`simgrid::s4u::Host::on_onoff_cb`: Do what is appropriate when the host gets turned off or on. - :cpp:func:`simgrid::s4u::Host::on_speed_change_cb`: Do what is appropriate when the DVFS is modified. Note that extensions are automatically destroyed when the host gets destroyed. @@ -258,7 +257,7 @@ void sg_host_load_plugin_init() XBT_WARN("HostLoad plugin currently does not support executions on several hosts"); } }); - simgrid::s4u::Host::on_state_change_cb(&on_host_change); + simgrid::s4u::Host::on_onoff_cb(&on_host_change); simgrid::s4u::Host::on_speed_change_cb(&on_host_change); } diff --git a/src/plugins/link_energy.cpp b/src/plugins/link_energy.cpp index 4cf3a5e1ae..dd1e53b2e1 100644 --- a/src/plugins/link_energy.cpp +++ b/src/plugins/link_energy.cpp @@ -198,7 +198,7 @@ void sg_link_energy_plugin_init() } }); - simgrid::s4u::Link::on_state_change_cb([](simgrid::s4u::Link const& link) { + simgrid::s4u::Link::on_onoff_cb([](simgrid::s4u::Link const& link) { if (link.get_sharing_policy() != simgrid::s4u::Link::SharingPolicy::WIFI) link.extension()->update(); }); diff --git a/src/plugins/link_load.cpp b/src/plugins/link_load.cpp index 86147659bc..d502cec4df 100644 --- a/src/plugins/link_load.cpp +++ b/src/plugins/link_load.cpp @@ -202,7 +202,7 @@ void sg_link_load_plugin_init() simgrid::kernel::activity::CommImpl::on_start.connect(&on_communication); simgrid::kernel::activity::CommImpl::on_completion.connect(&on_communication); - simgrid::s4u::Link::on_state_change_cb([](simgrid::s4u::Link const& link) { + simgrid::s4u::Link::on_onoff_cb([](simgrid::s4u::Link const& link) { if (link.get_sharing_policy() != simgrid::s4u::Link::SharingPolicy::WIFI) { auto link_load = link.extension(); if (link_load->is_tracked()) diff --git a/src/s4u/s4u_Disk.cpp b/src/s4u/s4u_Disk.cpp index 0fa8295342..c97f72bc00 100644 --- a/src/s4u/s4u_Disk.cpp +++ b/src/s4u/s4u_Disk.cpp @@ -17,7 +17,7 @@ namespace s4u { xbt::signal Disk::on_creation; xbt::signal Disk::on_destruction; -xbt::signal Disk::on_state_change; +xbt::signal Disk::on_onoff; const std::string& Disk::get_name() const { diff --git a/src/s4u/s4u_Host.cpp b/src/s4u/s4u_Host.cpp index 496b1f9adb..91da3536e1 100644 --- a/src/s4u/s4u_Host.cpp +++ b/src/s4u/s4u_Host.cpp @@ -32,7 +32,7 @@ namespace s4u { #ifndef DOXYGEN xbt::signal Host::on_creation; xbt::signal Host::on_destruction; -xbt::signal Host::on_state_change; +xbt::signal Host::on_onoff; xbt::signal Host::on_speed_change; xbt::signal Host::on_exec_state_change; #endif @@ -102,8 +102,8 @@ void Host::turn_on() kernel::actor::simcall_answered([this] { this->pimpl_cpu_->turn_on(); this->pimpl_->turn_on(); - on_state_change(*this); - on_this_state_change(*this); + on_onoff(*this); + on_this_onoff(*this); }); } } @@ -117,8 +117,8 @@ void Host::turn_off() this->pimpl_cpu_->turn_off(); this->pimpl_->turn_off(self); - on_state_change(*this); - on_this_state_change(*this); + on_onoff(*this); + on_this_onoff(*this); }); } } diff --git a/src/s4u/s4u_Link.cpp b/src/s4u/s4u_Link.cpp index d64a4573b6..0a42518758 100644 --- a/src/s4u/s4u_Link.cpp +++ b/src/s4u/s4u_Link.cpp @@ -22,7 +22,7 @@ namespace s4u { xbt::signal Link::on_creation; xbt::signal Link::on_destruction; -xbt::signal Link::on_state_change; +xbt::signal Link::on_onoff; xbt::signal Link::on_bandwidth_change; xbt::signal Link::on_communication_state_change; @@ -137,19 +137,11 @@ double Link::get_load() const void Link::turn_on() { - kernel::actor::simcall_answered([this]() { - this->pimpl_->turn_on(); - on_state_change(*this); - on_this_state_change(*this); - }); + kernel::actor::simcall_answered([this]() { this->pimpl_->turn_on(); }); } void Link::turn_off() { - kernel::actor::simcall_answered([this]() { - this->pimpl_->turn_off(); - on_state_change(*this); - on_this_state_change(*this); - }); + kernel::actor::simcall_answered([this]() { this->pimpl_->turn_off(); }); } Link* Link::seal() { diff --git a/teshsuite/s4u/comm-fault-scenarios/comm-fault-scenarios.cpp b/teshsuite/s4u/comm-fault-scenarios/comm-fault-scenarios.cpp index 3843601619..1723741e6b 100644 --- a/teshsuite/s4u/comm-fault-scenarios/comm-fault-scenarios.cpp +++ b/teshsuite/s4u/comm-fault-scenarios/comm-fault-scenarios.cpp @@ -413,7 +413,7 @@ int main(int argc, char* argv[]) {sg4::LinkInRoute{link}}, false); zone->seal(); - sg4::Host::on_state_change_cb([mbox](sg4::Host const& host) { + sg4::Host::on_onoff_cb([mbox](sg4::Host const& host) { XBT_DEBUG("Host %s is now %s", host.get_cname(), host.is_on() ? "ON " : "OFF"); if (not host.is_on()) { mbox.eager->clear(); @@ -421,7 +421,7 @@ int main(int argc, char* argv[]) } }); - sg4::Link::on_state_change_cb( + sg4::Link::on_onoff_cb( [](sg4::Link const& lnk) { XBT_DEBUG("Link %s is now %s", lnk.get_cname(), lnk.is_on() ? "ON " : "OFF"); }); e.run_until(end_time); diff --git a/teshsuite/xbt/signals/signals.cpp b/teshsuite/xbt/signals/signals.cpp index 02b1cdf1c7..a0c1676d8e 100644 --- a/teshsuite/xbt/signals/signals.cpp +++ b/teshsuite/xbt/signals/signals.cpp @@ -11,29 +11,29 @@ static void worker() { simgrid::s4u::Host* other_host = simgrid::s4u::Host::by_name("Fafard"); unsigned int first = - simgrid::s4u::Host::on_state_change.connect([](simgrid::s4u::Host const&) { XBT_INFO("First callback"); }); + simgrid::s4u::Host::on_onoff.connect([](simgrid::s4u::Host const&) { XBT_INFO("First callback"); }); unsigned int second = - simgrid::s4u::Host::on_state_change.connect([](simgrid::s4u::Host const&) { XBT_INFO("Second callback"); }); + simgrid::s4u::Host::on_onoff.connect([](simgrid::s4u::Host const&) { XBT_INFO("Second callback"); }); unsigned int third = - simgrid::s4u::Host::on_state_change.connect([](simgrid::s4u::Host const&) { XBT_INFO("Third callback"); }); + simgrid::s4u::Host::on_onoff.connect([](simgrid::s4u::Host const&) { XBT_INFO("Third callback"); }); XBT_INFO("Turning off: Three callbacks should be triggered"); other_host->turn_off(); XBT_INFO("Disconnect the second callback"); - simgrid::s4u::Host::on_state_change.disconnect(second); + simgrid::s4u::Host::on_onoff.disconnect(second); XBT_INFO("Turning on: Two callbacks should be triggered"); other_host->turn_on(); XBT_INFO("Disconnect the first callback"); - simgrid::s4u::Host::on_state_change.disconnect(first); + simgrid::s4u::Host::on_onoff.disconnect(first); XBT_INFO("Turning off: One callback should be triggered"); other_host->turn_off(); XBT_INFO("Disconnect the third callback"); - simgrid::s4u::Host::on_state_change.disconnect(third); + simgrid::s4u::Host::on_onoff.disconnect(third); XBT_INFO("Turning on: No more callbacks"); other_host->turn_on(); }