Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove unused typedefs.
[simgrid.git] / src / s4u / s4u_link.cpp
index 4fd78e8..b0de6a6 100644 (file)
@@ -8,6 +8,7 @@
 #include "simgrid/s4u/Link.hpp"
 #include "simgrid/sg_config.h"
 #include "simgrid/simix.hpp"
+#include "src/kernel/lmm/maxmin.hpp"
 #include "src/surf/network_interface.hpp"
 #include "xbt/log.h"
 
@@ -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 *
  *************/