-void Link::setState(e_surf_resource_state_t state){
- e_surf_resource_state_t old = Resource::getState();
- Resource::setState(state);
- onStateChange(this, old, state);
-}
+ int Link::sharingPolicy()
+ {
+ return lmm_constraint_sharing_policy(getConstraint());
+ }
+
+ void Link::turnOn(){
+ if (isOff()) {
+ Resource::turnOn();
+ onStateChange(this);
+ }
+ }
+ void Link::turnOff(){
+ if (isOn()) {
+ Resource::turnOff();
+ onStateChange(this);
+ }
+ }
+ void Link::setStateTrace(tmgr_trace_t trace) {
+ xbt_assert(stateEvent_ == nullptr, "Cannot set a second state trace to Link %s", getName());
+ stateEvent_ = future_evt_set->add_trace(trace, 0.0, this);
+ }
+ void Link::setBandwidthTrace(tmgr_trace_t trace)
+ {
+ xbt_assert(bandwidth_.event == nullptr, "Cannot set a second bandwidth trace to Link %s", getName());
+ bandwidth_.event = future_evt_set->add_trace(trace, 0.0, this);
+ }
+ void Link::setLatencyTrace(tmgr_trace_t trace)
+ {
+ xbt_assert(latency_.event == nullptr, "Cannot set a second latency trace to Link %s", getName());
+ latency_.event = future_evt_set->add_trace(trace, 0.0, this);
+ }