Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
8bf9b0cbf32128d7d5406b8c3f997c8685ae8d2b
[simgrid.git] / src / bindings / java / surf_swig.cpp
1 /* Copyright (c) 2014. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #include <boost/lambda/bind.hpp>
8 #include "src/surf/surf_interface.hpp"
9 #include "surf_swig.hpp"
10 #include "src/simix/smx_private.h"
11
12
13 double getClock() {
14   return surf_get_clock();
15 }
16
17 void clean() {
18   SIMIX_clean();
19 }
20
21 /*NetworkModel *getNetworkModel()
22 {
23   return surf_network_model;
24 }*/
25
26 NetworkLinkDynar getRoute(char *srcName, char *dstName) {
27   RoutingEdge *src = (RoutingEdge*)xbt_lib_get_or_null(host_lib, srcName, ROUTING_HOST_LEVEL);
28   RoutingEdge *dst = (RoutingEdge*)xbt_lib_get_or_null(host_lib, dstName, ROUTING_HOST_LEVEL);
29   if (src==NULL)
30     xbt_die("TOTO");
31   if (dst==NULL)
32     xbt_die("TOTO");
33   xbt_dynar_t route = xbt_dynar_new(sizeof(RoutingEdgePtr), NULL);
34   routing_platf->getRouteAndLatency(src, dst, &route, NULL);
35   return route;
36 }
37
38 void Plugin::activateCpuCreatedCallback(){
39   surf_callback_connect(cpuCreatedCallbacks, boost::bind(&Plugin::cpuCreatedCallback, this, _1));
40 }
41
42 void Plugin::activateCpuDestructedCallback(){
43   surf_callback_connect(cpuDestructedCallbacks, boost::bind(&Plugin::cpuDestructedCallback, this, _1));
44 }
45
46 void Plugin::activateCpuStateChangedCallback(){
47   surf_callback_connect(cpuStateChangedCallbacks, boost::bind(&Plugin::cpuStateChangedCallback, this, _1, _2, _3));
48 }
49
50 void Plugin::activateCpuActionStateChangedCallback(){
51   surf_callback_connect(cpuActionStateChangedCallbacks, boost::bind(&Plugin::cpuActionStateChangedCallback, this, _1, _2, _3));
52 }
53
54
55 void Plugin::activateNetworkLinkCreatedCallback(){
56   surf_callback_connect(networkLinkCreatedCallbacks, boost::bind(&Plugin::networkLinkCreatedCallback, this, _1));
57 }
58
59 void Plugin::activateNetworkLinkDestructedCallback(){
60   surf_callback_connect(networkLinkDestructedCallbacks, boost::bind(&Plugin::networkLinkDestructedCallback, this, _1));
61 }
62
63 void Plugin::activateNetworkLinkStateChangedCallback(){
64   surf_callback_connect(networkLinkStateChangedCallbacks, boost::bind(&Plugin::networkLinkStateChangedCallback, this, _1, _2, _3));
65 }
66
67 void Plugin::activateNetworkActionStateChangedCallback(){
68   surf_callback_connect(networkActionStateChangedCallbacks, boost::bind(&Plugin::networkActionStateChangedCallback, this, _1, _2, _3));
69 }
70
71 void Plugin::activateNetworkCommunicateCallback(){
72   surf_callback_connect(networkCommunicateCallbacks, boost::bind(&Plugin::networkCommunicateCallback, this, _1, _2, _3, _4, _5));
73 }
74
75
76