X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/73964e0702f4c60d487bad44f6be8fd472680485..413534bc9aac9b6a61840de0a20f933534552fd7:/src/bindings/java/surf_swig.cpp diff --git a/src/bindings/java/surf_swig.cpp b/src/bindings/java/surf_swig.cpp index 6da728c427..fef1748289 100644 --- a/src/bindings/java/surf_swig.cpp +++ b/src/bindings/java/surf_swig.cpp @@ -1,9 +1,53 @@ +/* Copyright (c) 2014. 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 #include "src/surf/surf_interface.hpp" #include "surf_swig.hpp" +#include "src/simix/smx_private.h" double getClock() { - surf_get_clock(); + return surf_get_clock(); +} + +void clean() { + SIMIX_clean(); +} + +CpuModel *getCpuModel(){ + return surf_cpu_model_pm; +} + +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); + sg_platf_host_add_cb(cpu_parse_init); +} + +void setCpuModel(CpuModel *cpuModel){ + java_cpu_model = cpuModel; + surf_cpu_model_init_preparse = java_cpu_model_init_preparse; +} + +void setCpu(char *name, Cpu *cpu) { + xbt_lib_set(host_lib, name, SURF_CPU_LEVEL, cpu); +} + +NetworkLinkDynar getRoute(char *srcName, char *dstName) { + RoutingEdge *src = (RoutingEdge*)xbt_lib_get_or_null(host_lib, srcName, ROUTING_HOST_LEVEL); + RoutingEdge *dst = (RoutingEdge*)xbt_lib_get_or_null(host_lib, dstName, ROUTING_HOST_LEVEL); + if (src==NULL) + xbt_die("TOTO"); + if (dst==NULL) + xbt_die("TOTO"); + xbt_dynar_t route = xbt_dynar_new(sizeof(RoutingEdgePtr), NULL); + routing_platf->getRouteAndLatency(src, dst, &route, NULL); + return route; } void Plugin::activateCpuCreatedCallback(){ @@ -15,11 +59,11 @@ void Plugin::activateCpuDestructedCallback(){ } void Plugin::activateCpuStateChangedCallback(){ - surf_callback_connect(cpuStateChangedCallbacks, boost::bind(&Plugin::cpuStateChangedCallback, this, _1)); + surf_callback_connect(cpuStateChangedCallbacks, boost::bind(&Plugin::cpuStateChangedCallback, this, _1, _2, _3)); } void Plugin::activateCpuActionStateChangedCallback(){ - surf_callback_connect(cpuActionStateChangedCallbacks, boost::bind(&Plugin::cpuActionStateChangedCallback, this, _1)); + surf_callback_connect(cpuActionStateChangedCallbacks, boost::bind(&Plugin::cpuActionStateChangedCallback, this, _1, _2, _3)); } @@ -32,11 +76,16 @@ void Plugin::activateNetworkLinkDestructedCallback(){ } void Plugin::activateNetworkLinkStateChangedCallback(){ - surf_callback_connect(networkLinkStateChangedCallbacks, boost::bind(&Plugin::networkLinkStateChangedCallback, this, _1)); + surf_callback_connect(networkLinkStateChangedCallbacks, boost::bind(&Plugin::networkLinkStateChangedCallback, this, _1, _2, _3)); } void Plugin::activateNetworkActionStateChangedCallback(){ - surf_callback_connect(networkActionStateChangedCallbacks, boost::bind(&Plugin::networkActionStateChangedCallback, this, _1)); + surf_callback_connect(networkActionStateChangedCallbacks, boost::bind(&Plugin::networkActionStateChangedCallback, this, _1, _2, _3)); +} + +void Plugin::activateNetworkCommunicateCallback(){ + surf_callback_connect(networkCommunicateCallbacks, boost::bind(&Plugin::networkCommunicateCallback, this, _1, _2, _3, _4, _5)); } +