X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3a76359d818d1d9c0b3dad7d552e5b32b4595335..b291a429a3c31317cb0b2144cbf626f27f870ad8:/src/surf/network_interface.hpp diff --git a/src/surf/network_interface.hpp b/src/surf/network_interface.hpp index 3c749be205..256ff5d0fd 100644 --- a/src/surf/network_interface.hpp +++ b/src/surf/network_interface.hpp @@ -41,14 +41,14 @@ public: ~NetworkModel() override; /** - * @brief Create a Link + * @brief Create a [WiFi]Link * * @param name The name of the Link - * @param bandwidth The initial bandwidth of the Link in bytes per second - * @param policy The sharing policy of the Link + * @param bandwidths The vector of bandwidths of the Link in bytes per second */ - virtual LinkImpl* create_link(const std::string& name, const std::vector& bandwidths, - s4u::Link::SharingPolicy policy) = 0; + virtual LinkImpl* create_link(const std::string& name, const std::vector& bandwidths) = 0; + + virtual LinkImpl* create_wifi_link(const std::string& name, const std::vector& bandwidths) = 0; /** * @brief Create a communication between two hosts. @@ -110,7 +110,7 @@ class LinkImpl : public Resource_T, public xbt::PropertyHolder { s4u::Link piface_; protected: - LinkImpl(const std::string& name); + explicit LinkImpl(const std::string& name); LinkImpl(const LinkImpl&) = delete; LinkImpl& operator=(const LinkImpl&) = delete; ~LinkImpl() override = default; // Use destroy() instead of this destructor. @@ -118,7 +118,7 @@ protected: public: void destroy(); // Must be called instead of the destructor - void latency_check(double latency); + void latency_check(double latency) const; /** @brief Public interface */ const s4u::Link* get_iface() const { return &piface_; } @@ -137,6 +137,7 @@ public: virtual LinkImpl* set_latency(double value) = 0; /** @brief The sharing policy */ + virtual LinkImpl* set_sharing_policy(s4u::Link::SharingPolicy policy); virtual s4u::Link::SharingPolicy get_sharing_policy() const; /** @brief Check if the Link is used */ @@ -145,18 +146,16 @@ public: void turn_on() override; void turn_off() override; - void seal(); + void seal() override; void on_bandwidth_change() const; - virtual void - set_bandwidth_profile(kernel::profile::Profile* profile); /*< setup the profile file with bandwidth events - (peak speed changes due to external load). Trace must - contain percentages (value between 0 and 1). */ - virtual void - set_latency_profile(kernel::profile::Profile* profile); /*< setup the trace file with latency events (peak - latency changes due to external load). Trace must contain - absolute values */ + /* setup the profile file with bandwidth events (peak speed changes due to external load). + * Profile must contain percentages (value between 0 and 1). */ + virtual LinkImpl* set_bandwidth_profile(kernel::profile::Profile* profile); + /* setup the profile file with latency events (peak latency changes due to external load). + * Profile must contain absolute values */ + virtual LinkImpl* set_latency_profile(kernel::profile::Profile* profile); Metric latency_ = {0.0, 0, nullptr}; Metric bandwidth_ = {1.0, 0, nullptr}; @@ -202,7 +201,7 @@ public: double latency_ = 0.; // Delay before the action starts double lat_current_ = 0.; // Used to compute the communication RTT, and accordingly limit the communication rate double sharing_penalty_ = {}; - double rate_ = {}; + s4u::Host& get_src() const { return src_; } s4u::Host& get_dst() const { return dst_; } }; @@ -210,11 +209,6 @@ public: } // namespace kernel } // namespace simgrid -/** @ingroup SURF_models - * @brief The network model - */ -XBT_PUBLIC_DATA simgrid::kernel::resource::NetworkModel* surf_network_model; - #endif /* SURF_NETWORK_INTERFACE_HPP_ */