Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge remote-tracking branch 'upstream/master' into issue95
[simgrid.git] / src / surf / SplitDuplexLinkImpl.cpp
index 2b2b003..48cd097 100644 (file)
@@ -22,12 +22,15 @@ SplitDuplexLinkImpl::SplitDuplexLinkImpl(const std::string& name, LinkImpl* link
 
 bool SplitDuplexLinkImpl::is_used() const
 {
-  xbt_die("Impossible to call is_used() in split-duplex links. Call it for each individual link.");
+  return link_up_->is_used() || link_down_->is_used();
 }
 
-void SplitDuplexLinkImpl::set_sharing_policy(s4u::Link::SharingPolicy policy)
+void SplitDuplexLinkImpl::set_sharing_policy(s4u::Link::SharingPolicy policy, const s4u::NonLinearResourceCb& cb)
 {
-  xbt_die("Impossible to change sharing policy of split-duplex links");
+  xbt_assert(policy != s4u::Link::SharingPolicy::SPLITDUPLEX && policy != s4u::Link::SharingPolicy::WIFI,
+             "Invalid sharing policy for split-duplex links");
+  link_up_->set_sharing_policy(policy, cb);
+  link_down_->set_sharing_policy(policy, cb);
 }
 
 void SplitDuplexLinkImpl::set_bandwidth(double value)