Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Move collective algorithms to separate folders
[simgrid.git] / src / s4u / s4u_link.cpp
index b1ce7b1..24561ff 100644 (file)
@@ -1,12 +1,11 @@
-/* Copyright (c) 2013-2015. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2013-2017. 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. */
 
 #include <algorithm>
 
-#include "simgrid/s4u/link.hpp"
+#include "simgrid/s4u/Link.hpp"
 #include "simgrid/sg_config.h"
 #include "simgrid/simix.hpp"
 #include "src/surf/network_interface.hpp"
@@ -20,32 +19,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();
 }
-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);
 }
@@ -53,10 +52,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++)
@@ -85,7 +84,7 @@ Link* Link::byName(const char* name)
 }
 const char* Link::name()
 {
-  return this->pimpl_->getName();
+  return this->pimpl_->cname();
 }
 bool Link::isUsed()
 {
@@ -149,5 +148,14 @@ void Link::setLatencyTrace(tmgr_trace_t trace)
     this->pimpl_->setLatencyTrace(trace);
   });
 }
+
+/*************
+ * Callbacks *
+ *************/
+simgrid::xbt::signal<void(s4u::Link&)> Link::onCreation;
+simgrid::xbt::signal<void(s4u::Link&)> Link::onDestruction;
+simgrid::xbt::signal<void(s4u::Link&)> Link::onStateChange;
+simgrid::xbt::signal<void(surf::NetworkAction*, s4u::Host* src, s4u::Host* dst)> Link::onCommunicate;
+simgrid::xbt::signal<void(surf::NetworkAction*)> Link::onCommunicationStateChange;
 }
 }