Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[surf] Wrap the sigc++ API to provide the same API as boost::signals2
[simgrid.git] / src / bindings / java / surf_swig.cpp
index b7f62f8..bacbfa7 100644 (file)
@@ -1,14 +1,28 @@
-/* Copyright (c) 2014. The SimGrid Team.
+/* Copyright (c) 2014-2015. 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. */
 
+// Avoid ambiguity between boost and std placeholders
+// (the std placeholders are imported through boost::signals2):
+#ifndef BOOST_BIND_NO_PLACEHOLDERS
+  #define BOOST_BIND_NO_PLACEHOLDERS
+#endif
+
+#include <functional>
+
 #include <boost/lambda/bind.hpp>
 #include "src/surf/surf_interface.hpp"
 #include "surf_swig.hpp"
 #include "src/simix/smx_private.h"
 
+using std::placeholders::_1;
+using std::placeholders::_2;
+using std::placeholders::_3;
+using std::placeholders::_4;
+using std::placeholders::_5;
+
 double getClock() {
   return surf_get_clock();
 }
@@ -24,8 +38,7 @@ CpuModel *getCpuModel(){
 CpuModel *java_cpu_model;
 static void java_cpu_model_init_preparse() {
   surf_cpu_model_pm = java_cpu_model;
-  xbt_dynar_push(model_list, &java_cpu_model);
-  xbt_dynar_push(model_list_invoke, &java_cpu_model);
+  xbt_dynar_push(all_existing_models, &java_cpu_model);
   sg_platf_host_add_cb(cpu_parse_init);
 }
 
@@ -49,40 +62,40 @@ LinkDynar getRoute(char *srcName, char *dstName) {
 }
 
 void Plugin::activateCpuCreatedCallback(){
-  surf_callback_connect(cpuCreatedCallbacks, boost::bind(&Plugin::cpuCreatedCallback, this, _1));
+  surf_callback_connect(cpuCreatedCallbacks, std::bind(&Plugin::cpuCreatedCallback, this, _1));
 }
 
 void Plugin::activateCpuDestructedCallback(){
-  surf_callback_connect(cpuDestructedCallbacks, boost::bind(&Plugin::cpuDestructedCallback, this, _1));
+  surf_callback_connect(cpuDestructedCallbacks, std::bind(&Plugin::cpuDestructedCallback, this, _1));
 }
 
 void Plugin::activateCpuStateChangedCallback(){
-  surf_callback_connect(cpuStateChangedCallbacks, boost::bind(&Plugin::cpuStateChangedCallback, this, _1, _2, _3));
+  surf_callback_connect(cpuStateChangedCallbacks, std::bind(&Plugin::cpuStateChangedCallback, this, _1, _2, _3));
 }
 
 void Plugin::activateCpuActionStateChangedCallback(){
-  surf_callback_connect(cpuActionStateChangedCallbacks, boost::bind(&Plugin::cpuActionStateChangedCallback, this, _1, _2, _3));
+  surf_callback_connect(cpuActionStateChangedCallbacks, std::bind(&Plugin::cpuActionStateChangedCallback, this, _1, _2, _3));
 }
 
 
 void Plugin::activateLinkCreatedCallback(){
-  surf_callback_connect(networkLinkCreatedCallbacks, boost::bind(&Plugin::networkLinkCreatedCallback, this, _1));
+  surf_callback_connect(networkLinkCreatedCallbacks, std::bind(&Plugin::networkLinkCreatedCallback, this, _1));
 }
 
 void Plugin::activateLinkDestructedCallback(){
-  surf_callback_connect(networkLinkDestructedCallbacks, boost::bind(&Plugin::networkLinkDestructedCallback, this, _1));
+  surf_callback_connect(networkLinkDestructedCallbacks, std::bind(&Plugin::networkLinkDestructedCallback, this, _1));
 }
 
 void Plugin::activateLinkStateChangedCallback(){
-  surf_callback_connect(networkLinkStateChangedCallbacks, boost::bind(&Plugin::networkLinkStateChangedCallback, this, _1, _2, _3));
+  surf_callback_connect(networkLinkStateChangedCallbacks, std::bind(&Plugin::networkLinkStateChangedCallback, this, _1, _2, _3));
 }
 
 void Plugin::activateNetworkActionStateChangedCallback(){
-  surf_callback_connect(networkActionStateChangedCallbacks, boost::bind(&Plugin::networkActionStateChangedCallback, this, _1, _2, _3));
+  surf_callback_connect(networkActionStateChangedCallbacks, std::bind(&Plugin::networkActionStateChangedCallback, this, _1, _2, _3));
 }
 
 void Plugin::activateNetworkCommunicateCallback(){
-  surf_callback_connect(networkCommunicateCallbacks, boost::bind(&Plugin::networkCommunicateCallback, this, _1, _2, _3, _4, _5));
+  surf_callback_connect(networkCommunicateCallbacks, std::bind(&Plugin::networkCommunicateCallback, this, _1, _2, _3, _4, _5));
 }