X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/08e7455d67920bbd7a87f440d00f2c1e071314a0..090f69e16fc2256292aa7ca819b9d80a2a51d8d4:/src/surf/network_ib.hpp diff --git a/src/surf/network_ib.hpp b/src/surf/network_ib.hpp index e08b23a0e6..37884ed705 100644 --- a/src/surf/network_ib.hpp +++ b/src/surf/network_ib.hpp @@ -27,33 +27,35 @@ struct XBT_PRIVATE ActiveComm { class IBNode { public: - int id; + int id_; // store related links, to ease computation of the penalties - std::vector ActiveCommsUp; + std::vector active_comms_up_; // store the number of comms received from each node - std::map ActiveCommsDown; + std::map active_comms_down_; // number of comms the node is receiving - int nbActiveCommsDown = 0; - explicit IBNode(int id) : id(id){}; - virtual ~IBNode() = default; + int nb_active_comms_down_ = 0; + explicit IBNode(int id) : id_(id){}; }; class XBT_PRIVATE NetworkIBModel : public NetworkSmpiModel { - double Bs; - double Be; - double ys; - void updateIBfactors_rec(IBNode* root, std::vector& updatedlist) const; - void computeIBfactors(IBNode* root) const; + std::unordered_map active_nodes; + std::unordered_map> active_comms; + + double Bs_; + double Be_; + double ys_; + void update_IB_factors_rec(IBNode* root, std::vector& updatedlist) const; + void compute_IB_factors(IBNode* root) const; public: - NetworkIBModel(); - explicit NetworkIBModel(const char* name); + explicit NetworkIBModel(const std::string& name); NetworkIBModel(const NetworkIBModel&) = delete; NetworkIBModel& operator=(const NetworkIBModel&) = delete; - void updateIBfactors(NetworkAction* action, IBNode* from, IBNode* to, int remove) const; + void update_IB_factors(NetworkAction* action, IBNode* from, IBNode* to, int remove) const; - std::unordered_map active_nodes; - std::unordered_map> active_comms; + static void IB_create_host_callback(s4u::Host const& host); + static void IB_action_state_changed_callback(NetworkAction& action, Action::State /*previous*/); + static void IB_action_init_callback(NetworkAction& action); }; } // namespace resource } // namespace kernel