X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3836e4e27a13a0d389812e41a4d5d651ff0c158b..c0f3756528127131a1947179f56871657a084259:/src/surf/network_interface.cpp?ds=sidebyside diff --git a/src/surf/network_interface.cpp b/src/surf/network_interface.cpp index 856c3f9f72..d462377dc3 100644 --- a/src/surf/network_interface.cpp +++ b/src/surf/network_interface.cpp @@ -6,6 +6,7 @@ #include "network_interface.hpp" #include "simgrid/sg_config.hpp" #include "src/surf/surf_interface.hpp" +#include "surf/surf.hpp" #ifndef NETWORK_INTERFACE_CPP_ #define NETWORK_INTERFACE_CPP_ @@ -101,7 +102,7 @@ double NetworkModel::next_occuring_event_full(double now) { double minRes = Model::next_occuring_event_full(now); - for (Action const& action : *get_running_action_set()) { + for (Action const& action : *get_started_action_set()) { const NetworkAction& net_action = static_cast(action); if (net_action.latency_ > 0) minRes = (minRes < 0) ? net_action.latency_ : std::min(minRes, net_action.latency_); @@ -143,7 +144,7 @@ void LinkImpl::destroy() { if (not currentlyDestroying_) { currentlyDestroying_ = true; - s4u::Link::onDestruction(this->piface_); + s4u::Link::on_destruction(this->piface_); delete this; } } @@ -172,16 +173,23 @@ void LinkImpl::turn_on() { if (is_off()) { Resource::turn_on(); - s4u::Link::onStateChange(this->piface_); + s4u::Link::on_state_change(this->piface_); } } + void LinkImpl::turn_off() { if (is_on()) { Resource::turn_off(); - s4u::Link::onStateChange(this->piface_); + s4u::Link::on_state_change(this->piface_); } } + +void LinkImpl::on_bandwidth_change() +{ + s4u::Link::on_bandwidth_change(this->piface_); +} + void LinkImpl::setStateTrace(tmgr_trace_t trace) { xbt_assert(stateEvent_ == nullptr, "Cannot set a second state trace to Link %s", get_cname()); @@ -204,8 +212,10 @@ void LinkImpl::setLatencyTrace(tmgr_trace_t trace) void NetworkAction::set_state(Action::State state) { + Action::State previous = get_state(); Action::set_state(state); - s4u::Link::onCommunicationStateChange(this); + if (previous != state) // Trigger only if the state changed + s4u::Link::on_communication_state_change(this); } /** @brief returns a list of all Links that this action is using */