From: Frederic Suter Date: Tue, 21 Apr 2020 11:40:42 +0000 (+0200) Subject: add the capacicity to modify links' latency and bandwidth X-Git-Tag: v3.26~654 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/018f350d5ea999b34ce1a4294cf53993ba2003a7 add the capacicity to modify links' latency and bandwidth --- diff --git a/include/simgrid/link.h b/include/simgrid/link.h index 4c4cf86994..115e64aea5 100644 --- a/include/simgrid/link.h +++ b/include/simgrid/link.h @@ -17,7 +17,9 @@ XBT_PUBLIC const char* sg_link_name(const_sg_link_t link); XBT_PUBLIC sg_link_t sg_link_by_name(const char* name); XBT_PUBLIC int sg_link_is_shared(const_sg_link_t link); XBT_PUBLIC double sg_link_bandwidth(const_sg_link_t link); +XBT_PUBLIC void sg_link_bandwidth_set(sg_link_t link, double value); XBT_PUBLIC double sg_link_latency(const_sg_link_t link); +XBT_PUBLIC void sg_link_latency_set(sg_link_t link, double value); XBT_PUBLIC void* sg_link_data(const_sg_link_t link); XBT_PUBLIC void sg_link_data_set(sg_link_t link, void* data); XBT_PUBLIC int sg_link_count(); diff --git a/include/simgrid/s4u/Link.hpp b/include/simgrid/s4u/Link.hpp index 4fa04e8b26..d5d13bba1d 100644 --- a/include/simgrid/s4u/Link.hpp +++ b/include/simgrid/s4u/Link.hpp @@ -54,9 +54,11 @@ public: /** @brief Get the bandwidth in bytes per second of current Link */ double get_bandwidth() const; + void set_bandwidth(double value); /** @brief Get the latency in seconds of current Link */ double get_latency() const; + void set_latency(double value); /** @brief Describes how the link is shared between flows */ SharingPolicy get_sharing_policy() const; diff --git a/src/s4u/s4u_Link.cpp b/src/s4u/s4u_Link.cpp index 4942e65ee6..44742271e1 100644 --- a/src/s4u/s4u_Link.cpp +++ b/src/s4u/s4u_Link.cpp @@ -55,11 +55,21 @@ double Link::get_latency() const return this->pimpl_->get_latency(); } +void Link::set_latency(double value) +{ + kernel::actor::simcall([this, value] { pimpl_->set_latency(value); }); +} + double Link::get_bandwidth() const { return this->pimpl_->get_bandwidth(); } +void Link::set_bandwidth(double value) +{ + kernel::actor::simcall([this, value] { pimpl_->set_bandwidth(value); }); +} + Link::SharingPolicy Link::get_sharing_policy() const { return this->pimpl_->get_sharing_policy(); @@ -127,10 +137,20 @@ double sg_link_bandwidth(const_sg_link_t link) { return link->get_bandwidth(); } + +void sg_link_bandwidth_set(sg_link_t link, double value) +{ + return link->set_bandwidth(value); +} + double sg_link_latency(const_sg_link_t link) { return link->get_latency(); } +void sg_link_latency_set(sg_link_t link, double value) +{ + return link->set_latency(value); +} void* sg_link_data(const_sg_link_t link) { return link->get_data();