X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ead116337e0f3636ea2bcb200cd5156e576689eb..7bc340a73928fe73a57a9664aeba0cf5a92b654c:/src/s4u/s4u_link.cpp diff --git a/src/s4u/s4u_link.cpp b/src/s4u/s4u_link.cpp index 4fd78e8863..dcac704643 100644 --- a/src/s4u/s4u_link.cpp +++ b/src/s4u/s4u_link.cpp @@ -9,6 +9,7 @@ #include "simgrid/sg_config.h" #include "simgrid/simix.hpp" #include "src/surf/network_interface.hpp" +#include "surf/maxmin.hpp" #include "xbt/log.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_link, s4u, "Logging specific to the S4U links"); @@ -19,32 +20,32 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_link, s4u, "Logging specific to the S4U link extern "C" { -const char* sg_link_name(Link* link) +const char* sg_link_name(sg_link_t link) { - return link->name(); + return link->getCname(); } -Link* sg_link_by_name(const char* name) +sg_link_t sg_link_by_name(const char* name) { - return Link::byName(name); + return simgrid::s4u::Link::byName(name); } -int sg_link_is_shared(Link* link) +int sg_link_is_shared(sg_link_t link) { return link->sharingPolicy(); } -double sg_link_bandwidth(Link* link) +double sg_link_bandwidth(sg_link_t link) { return link->bandwidth(); } -double sg_link_latency(Link* link) +double sg_link_latency(sg_link_t link) { return link->latency(); } -void* sg_link_data(Link* link) +void* sg_link_data(sg_link_t link) { return link->getData(); } -void sg_link_data_set(Link* link, void* data) +void sg_link_data_set(sg_link_t link, void* data) { link->setData(data); } @@ -52,10 +53,10 @@ int sg_link_count() { return simgrid::surf::LinkImpl::linksCount(); } -Link** sg_link_list() +sg_link_t* sg_link_list() { simgrid::surf::LinkImpl** list = simgrid::surf::LinkImpl::linksList(); - Link** res = (Link**)list; // Use the same memory area + sg_link_t* res = (sg_link_t*)list; // Use the same memory area int size = sg_link_count(); for (int i = 0; i < size; i++) @@ -82,9 +83,17 @@ Link* Link::byName(const char* name) return nullptr; return &res->piface_; } +const std::string& Link::getName() const +{ + return this->pimpl_->getName(); +} +const char* Link::getCname() const +{ + return this->pimpl_->getCname(); +} const char* Link::name() { - return this->pimpl_->cname(); + return getCname(); } bool Link::isUsed() { @@ -106,6 +115,11 @@ int Link::sharingPolicy() return this->pimpl_->sharingPolicy(); } +double Link::getUsage() +{ + return this->pimpl_->constraint()->get_usage(); +} + void Link::turnOn() { simgrid::simix::kernelImmediate([this]() { @@ -149,6 +163,15 @@ void Link::setLatencyTrace(tmgr_trace_t trace) }); } +const char* Link::getProperty(const char* key) +{ + return this->pimpl_->getProperty(key); +} +void Link::setProperty(std::string key, std::string value) +{ + simgrid::simix::kernelImmediate([this, key, value] { this->pimpl_->setProperty(key, value); }); +} + /************* * Callbacks * *************/