* @return The new bandwidth.
*/
virtual double bandwidthConstraint(double rate, double bound, double size);
- double shareResourcesFull(double now);
+ double next_occuring_event_full(double now) override;
};
/************
* @param name The name of the Link
* @param props Dictionary of properties associated to this Link
* @param constraint The lmm constraint associated to this Cpu if it is part of a LMM component
- * @param fes Future Event Set in which our events must be registered
* @param state_trace [TODO]
*/
Link(simgrid::surf::NetworkModel *model, const char *name, xbt_dict_t props,
lmm_constraint_t constraint,
- sg_future_evt_set_t fes,
tmgr_trace_t state_trace);
/* Link destruction logic */
virtual double getBandwidth();
/** @brief Update the bandwidth in bytes per second of current Link */
- virtual void updateBandwidth(double value, double date=surf_get_clock())=0;
+ virtual void updateBandwidth(double value)=0;
/** @brief Get the latency in seconds of current Link */
virtual double getLatency();
/** @brief Update the latency in seconds of current Link */
- virtual void updateLatency(double value, double date=surf_get_clock())=0;
+ virtual void updateLatency(double value)=0;
/** @brief The sharing policy is a @{link e_surf_link_sharing_policy_t::EType} (0: FATPIPE, 1: SHARED, 2: FULLDUPLEX) */
virtual int sharingPolicy();
void turnOn() override;
void turnOff() override;
- /* Using this object with the public part of
- model does not make sense */
- double m_latCurrent = 0;
- tmgr_trace_iterator_t p_latEvent = NULL;
+ virtual void set_state_trace(tmgr_trace_t trace); /*< setup the trace file with states events (ON or OFF). Trace must contain boolean values. */
+ virtual void set_bandwidth_trace(tmgr_trace_t trace); /*< setup the trace file with bandwidth events (peak speed changes due to external load). Trace must contain percentages (value between 0 and 1). */
+ virtual void set_latency_trace(tmgr_trace_t trace); /*< setup the trace file with latency events (peak latency changes due to external load). Trace must contain absolute values */
- /* LMM */
- tmgr_trace_iterator_t p_stateEvent = NULL;
- s_surf_metric_t p_speed;
+ tmgr_trace_iterator_t m_stateEvent = NULL;
+ s_surf_metric_t m_latency = {1.0,0,NULL};
+ s_surf_metric_t m_bandwidth = {1.0,0,NULL};
/* User data */
public: