X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5156a24c2e6a1695071db9450126c3cc08bf1734..39ea45b775659c2b85ad06c43da6b58632bc3fbd:/src/surf/network_interface.hpp diff --git a/src/surf/network_interface.hpp b/src/surf/network_interface.hpp index 33515e8fb3..9cb6cc7621 100644 --- a/src/surf/network_interface.hpp +++ b/src/surf/network_interface.hpp @@ -144,7 +144,7 @@ public: void turn_on() override; void turn_off() override; - void on_bandwidth_change(); + void on_bandwidth_change() const; virtual void set_bandwidth_profile(kernel::profile::Profile* profile); /*< setup the profile file with bandwidth events @@ -167,6 +167,9 @@ public: * @details A NetworkAction represents a communication between two [hosts](@ref simgrid::surf::HostImpl) */ class NetworkAction : public Action { + s4u::Host& src_; + s4u::Host& dst_; + public: /** @brief Constructor * @@ -174,7 +177,10 @@ public: * @param cost The cost of this NetworkAction in [TODO] * @param failed [description] */ - NetworkAction(Model* model, double cost, bool failed) : Action(model, cost, failed) {} + NetworkAction(Model* model, s4u::Host& src, s4u::Host& dst, double cost, bool failed) + : Action(model, cost, failed), src_(src), dst_(dst) + { + } /** * @brief NetworkAction constructor @@ -184,7 +190,8 @@ public: * @param failed Actions can be created in a failed state * @param var The lmm variable associated to this Action if it is part of a LMM component */ - NetworkAction(Model* model, double cost, bool failed, lmm::Variable* var) : Action(model, cost, failed, var){}; + NetworkAction(Model* model, s4u::Host& src, s4u::Host& dst, double cost, bool failed, lmm::Variable* var) + : Action(model, cost, failed, var), src_(src), dst_(dst){}; void set_state(Action::State state) override; virtual std::list get_links() const; @@ -193,6 +200,8 @@ public: double lat_current_ = {}; double sharing_penalty_ = {}; double rate_ = {}; + s4u::Host& get_src() const { return src_; } + s4u::Host& get_dst() const { return dst_; } }; } // namespace resource } // namespace kernel