Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[CR] Minor improvement.
[simgrid.git] / src / surf / LinkImpl.hpp
index 5883775..e49c884 100644 (file)
@@ -20,7 +20,7 @@ namespace resource {
  ************/
 /** @ingroup SURF_network_interface
  * @brief SURF network link interface class
- * @details A Link represents the link between two [hosts](@ref simgrid::surf::HostImpl)
+ * @details A Link represents the link between two [hosts](@ref simgrid::kernel::resource::HostImpl)
  */
 class LinkImpl : public LinkImplIntf {
   s4u::Link piface_;
@@ -32,6 +32,9 @@ protected:
   LinkImpl& operator=(const LinkImpl&) = delete;
   ~LinkImpl() override                 = default; // Use destroy() instead of this destructor.
 
+  Metric latency_   = {0.0, 1, nullptr};
+  Metric bandwidth_ = {1.0, 1, nullptr};
+
 public:
   void destroy(); // Must be called instead of the destructor
 
@@ -48,11 +51,8 @@ public:
   double get_latency() const override { return latency_.peak * latency_.scale; }
 
   /** @brief The sharing policy */
-  virtual void set_sharing_policy(s4u::Link::SharingPolicy policy) override;
-  virtual s4u::Link::SharingPolicy get_sharing_policy() const override;
-
-  /** @brief Check if the Link is used */
-  bool is_used() const override;
+  void set_sharing_policy(s4u::Link::SharingPolicy policy, const s4u::NonLinearResourceCb& cb) override;
+  s4u::Link::SharingPolicy get_sharing_policy() const override { return sharing_policy_; }
 
   void turn_on() override;
   void turn_off() override;
@@ -63,15 +63,12 @@ public:
 
   /* setup the profile file with bandwidth events (peak speed changes due to external load).
    * Profile must contain percentages (value between 0 and 1). */
-  virtual void set_bandwidth_profile(kernel::profile::Profile* profile) override;
+  void set_bandwidth_profile(kernel::profile::Profile* profile) override;
   /* setup the profile file with latency events (peak latency changes due to external load).
    * Profile must contain absolute values */
-  virtual void set_latency_profile(kernel::profile::Profile* profile) override;
+  void set_latency_profile(kernel::profile::Profile* profile) override;
 
   void set_concurrency_limit(int limit) const override;
-
-  Metric latency_   = {0.0, 1, nullptr};
-  Metric bandwidth_ = {1.0, 1, nullptr};
 };
 
 } // namespace resource