X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/76d4849864c227687e17bdd93c5b1338e9b4cb50..6721094a6e5bc535c446266801f713c9e99ac968:/src/kernel/resource/StandardLinkImpl.hpp diff --git a/src/kernel/resource/StandardLinkImpl.hpp b/src/kernel/resource/StandardLinkImpl.hpp index 96dc680dba..4a10210074 100644 --- a/src/kernel/resource/StandardLinkImpl.hpp +++ b/src/kernel/resource/StandardLinkImpl.hpp @@ -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. */ @@ -12,15 +12,14 @@ * 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_; } @@ -65,10 +72,9 @@ public: void set_latency_profile(kernel::profile::Profile* profile) override; void set_concurrency_limit(int limit) const override; + int get_concurrency_limit() const override; }; -} // namespace resource -} // namespace kernel -} // namespace simgrid +} // namespace simgrid::kernel::resource #endif /* SIMGRID_KERNEL_RESOURCE_STANDARDLINKIMPL_HPP */