Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Sonar smells
[simgrid.git] / src / kernel / resource / StandardLinkImpl.hpp
index 0077755b02fd1dedf5730f325625b34d12fd734c..1b06a369734634338caee88904526fe17bc1d74d 100644 (file)
@@ -21,6 +21,7 @@ namespace resource {
 class StandardLinkImpl : public LinkImpl {
   s4u::Link piface_;
   s4u::Link::SharingPolicy sharing_policy_ = s4u::Link::SharingPolicy::SHARED;
+  routing::NetZoneImpl* englobing_zone_    = nullptr;
 
 protected:
   explicit StandardLinkImpl(const std::string& name);
@@ -33,6 +34,10 @@ protected:
 
 public:
   void destroy(); // Must be called instead of the destructor
+  class Deleter {
+  public:
+    void operator()(StandardLinkImpl* link) const;
+  };
 
   void latency_check(double latency) const;
 
@@ -46,6 +51,10 @@ public:
   /** @brief Get the latency in seconds of current Link */
   double get_latency() const override { return latency_.peak * latency_.scale; }
 
+  routing::NetZoneImpl* get_englobing_zone() const { return englobing_zone_; }
+  /** @brief Set the NetZone in which this Link is included */
+  StandardLinkImpl* set_englobing_zone(routing::NetZoneImpl* netzone_p);
+
   /** @brief The sharing policy */
   void set_sharing_policy(s4u::Link::SharingPolicy policy, const s4u::NonLinearResourceCb& cb) override;
   s4u::Link::SharingPolicy get_sharing_policy() const override { return sharing_policy_; }