* @param latency The initial latency of the Link in seconds
* @param policy The sharing policy of the Link
*/
- virtual LinkImpl* create_link(const std::string& name, double bandwidth, double latency,
+ virtual LinkImpl* create_link(const std::string& name, const std::vector<double>& bandwidths, double latency,
s4u::Link::SharingPolicy policy) = 0;
/**
* @return The new bandwidth.
*/
virtual double get_bandwidth_constraint(double rate, double bound, double size);
- double next_occuring_event_full(double now) override;
+ double next_occurring_event_full(double now) override;
LinkImpl* loopback_ = nullptr;
};
*/
class LinkImpl : public Resource, public surf::PropertyHolder {
bool currently_destroying_ = false;
- void* userdata_ = nullptr;
protected:
LinkImpl(NetworkModel* model, const std::string& name, lmm::Constraint* constraint);
public:
void destroy(); // Must be called instead of the destructor
- void* get_data() { return userdata_; }
- void set_data(void* d) { userdata_ = d; }
/** @brief Public interface */
s4u::Link piface_;
double latency_ = {};
double lat_current_ = {};
- double weight_ = {};
+ double sharing_penalty_ = {};
double rate_ = {};
};
} // namespace resource