X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ea74f5d95928a521a588737e81f1de94eef25d19..b993acdc0dd14a0b77b07f03f8e6eea97e5b6ad9:/src/kernel/resource/StandardLinkImpl.hpp diff --git a/src/kernel/resource/StandardLinkImpl.hpp b/src/kernel/resource/StandardLinkImpl.hpp index 0077755b02..d573fe127f 100644 --- a/src/kernel/resource/StandardLinkImpl.hpp +++ b/src/kernel/resource/StandardLinkImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2004-2022. 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_; } @@ -63,12 +70,8 @@ public: /* setup the profile file with latency events (peak latency changes due to external load). * Profile must contain absolute values */ void set_latency_profile(kernel::profile::Profile* profile) override; - - void set_concurrency_limit(int limit) const override; }; -} // namespace resource -} // namespace kernel -} // namespace simgrid +} // namespace simgrid::kernel::resource #endif /* SIMGRID_KERNEL_RESOURCE_STANDARDLINKIMPL_HPP */