~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<double>& bandwidths,
- s4u::Link::SharingPolicy policy) = 0;
+ virtual LinkImpl* create_link(const std::string& name, const std::vector<double>& bandwidths) = 0;
+
+ virtual LinkImpl* create_wifi_link(const std::string& name, const std::vector<double>& bandwidths) = 0;
/**
* @brief Create a communication between two hosts.
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_; }
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 */
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};