Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SplitDuplexLinkImpl always have SharingPolicy::SPLITDUPLEX. Use a sdingle assert...
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 6 Jul 2021 08:54:27 +0000 (10:54 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 6 Jul 2021 09:27:29 +0000 (11:27 +0200)
src/s4u/s4u_Link.cpp
src/surf/SplitDuplexLinkImpl.cpp
src/surf/SplitDuplexLinkImpl.hpp

index 0f5c751..2e2a3ba 100644 (file)
@@ -37,11 +37,11 @@ Link* Link::by_name(const std::string& name)
 
 kernel::resource::LinkImpl* Link::get_impl() const
 {
 
 kernel::resource::LinkImpl* Link::get_impl() const
 {
-  xbt_assert(
-      get_sharing_policy() != SharingPolicy::SPLITDUPLEX,
-      "Impossible to get a LinkImpl* from a Split-Duplex link. You should call this method to each UP/DOWN member");
   auto* link_impl = dynamic_cast<kernel::resource::LinkImpl*>(pimpl_);
   auto* link_impl = dynamic_cast<kernel::resource::LinkImpl*>(pimpl_);
-  xbt_assert(link_impl != nullptr);
+  xbt_assert(link_impl != nullptr, "Impossible to get a LinkImpl* from link. %s.",
+             (get_sharing_policy() == SharingPolicy::SPLITDUPLEX
+                  ? "For a Split-Duplex link, you should call this method to each UP/DOWN member"
+                  : "Please report this bug"));
   return link_impl;
 }
 
   return link_impl;
 }
 
index 329955a..2b2b003 100644 (file)
@@ -30,11 +30,6 @@ void SplitDuplexLinkImpl::set_sharing_policy(s4u::Link::SharingPolicy policy)
   xbt_die("Impossible to change sharing policy of split-duplex links");
 }
 
   xbt_die("Impossible to change sharing policy of split-duplex links");
 }
 
-s4u::Link::SharingPolicy SplitDuplexLinkImpl::get_sharing_policy() const
-{
-  return sharing_policy_;
-}
-
 void SplitDuplexLinkImpl::set_bandwidth(double value)
 {
   link_up_->set_bandwidth(value);
 void SplitDuplexLinkImpl::set_bandwidth(double value)
 {
   link_up_->set_bandwidth(value);
@@ -96,4 +91,4 @@ void SplitDuplexLinkImpl::set_concurrency_limit(int limit) const
 
 } // namespace resource
 } // namespace kernel
 
 } // namespace resource
 } // namespace kernel
-} // namespace simgrid
\ No newline at end of file
+} // namespace simgrid
index 15ed708..e8c1721 100644 (file)
@@ -25,7 +25,6 @@ namespace resource {
  */
 class SplitDuplexLinkImpl : public LinkImplIntf {
   s4u::SplitDuplexLink piface_;
  */
 class SplitDuplexLinkImpl : public LinkImplIntf {
   s4u::SplitDuplexLink piface_;
-  s4u::Link::SharingPolicy sharing_policy_ = s4u::Link::SharingPolicy::SPLITDUPLEX;
   LinkImpl* link_up_;
   LinkImpl* link_down_;
 
   LinkImpl* link_up_;
   LinkImpl* link_down_;
 
@@ -49,7 +48,7 @@ public:
 
   /** @brief The sharing policy */
   void set_sharing_policy(s4u::Link::SharingPolicy policy) override;
 
   /** @brief The sharing policy */
   void set_sharing_policy(s4u::Link::SharingPolicy policy) override;
-  s4u::Link::SharingPolicy get_sharing_policy() const override;
+  s4u::Link::SharingPolicy get_sharing_policy() const override { return s4u::Link::SharingPolicy::SPLITDUPLEX; }
 
   /** @brief Get link composing this split-duplex link */
   s4u::Link* get_link_up() const { return link_up_->get_iface(); }
 
   /** @brief Get link composing this split-duplex link */
   s4u::Link* get_link_up() const { return link_up_->get_iface(); }