Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
adding sleep sets to reduction techniques
[simgrid.git] / src / kernel / resource / StandardLinkImpl.hpp
index 96dc680..1c5c8b7 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2004-2021. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2004-2023. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
  * Classes *
  ***********/
 
-namespace simgrid {
-namespace kernel {
-namespace resource {
+namespace simgrid::kernel::resource {
 /************
  * 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 +32,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 +49,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_; }
@@ -67,8 +74,6 @@ public:
   void set_concurrency_limit(int limit) const override;
 };
 
-} // namespace resource
-} // namespace kernel
-} // namespace simgrid
+} // namespace simgrid::kernel::resource
 
 #endif /* SIMGRID_KERNEL_RESOURCE_STANDARDLINKIMPL_HPP */