From: Paul Bédaride Date: Wed, 26 Mar 2014 16:03:08 +0000 (+0100) Subject: Finalize reservation surf plugin X-Git-Tag: v3_11~189^2~24 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/8ab9fbef9cd17e59a43126cd5ea214f4190db39e Finalize reservation surf plugin --- diff --git a/buildtools/Cmake/DefinePackages.cmake b/buildtools/Cmake/DefinePackages.cmake index d7b0a5a6ea..478b767d97 100644 --- a/buildtools/Cmake/DefinePackages.cmake +++ b/buildtools/Cmake/DefinePackages.cmake @@ -505,10 +505,13 @@ set(JSURF_JAVA_GENERATED_SRC ${CMAKE_BINARY_DIR}/src/bindings/java/org/simgrid/surf/NetworkLink.java ${CMAKE_BINARY_DIR}/src/bindings/java/org/simgrid/surf/NetworkAction.java + ${CMAKE_BINARY_DIR}/src/bindings/java/org/simgrid/surf/RoutingEdge.java + ${CMAKE_BINARY_DIR}/src/bindings/java/org/simgrid/surf/ActionState.java ${CMAKE_BINARY_DIR}/src/bindings/java/org/simgrid/surf/ResourceState.java ${CMAKE_BINARY_DIR}/src/bindings/java/org/simgrid/surf/LmmConstraint.java + ${CMAKE_BINARY_DIR}/src/bindings/java/org/simgrid/surf/LmmVariable.java ${CMAKE_BINARY_DIR}/src/bindings/java/org/simgrid/surf/XbtDict.java ) diff --git a/examples/java/reservationSurfPlugin/Receiver.java b/examples/java/reservationSurfPlugin/Receiver.java index cd66bb4502..7097e5bcf2 100644 --- a/examples/java/reservationSurfPlugin/Receiver.java +++ b/examples/java/reservationSurfPlugin/Receiver.java @@ -21,15 +21,11 @@ public class Receiver extends Process { public void main(String[] args) throws MsgException { Msg.info("helloo!"); - double communicationTime=0; - Msg.info("try to get a task"); - - Task task = Task.receive(getHost().getName()); - double timeGot = Msg.getClock(); - - Msg.info("Got at time "+ timeGot); - task.execute(); + Task task; + task = Task.receive(getHost().getName()); + task = Task.receive(getHost().getName()); + task = Task.receive(getHost().getName()); Msg.info("goodbye!"); } diff --git a/examples/java/reservationSurfPlugin/ReservationPlugin.java b/examples/java/reservationSurfPlugin/ReservationPlugin.java index 8a637a802f..8f3b6b72bf 100644 --- a/examples/java/reservationSurfPlugin/ReservationPlugin.java +++ b/examples/java/reservationSurfPlugin/ReservationPlugin.java @@ -7,55 +7,34 @@ import java.util.HashMap; public class ReservationPlugin extends Plugin { public ReservationPlugin() { - activateCpuCreatedCallback(); - activateCpuDestructedCallback(); - activateCpuStateChangedCallback(); - activateCpuActionStateChangedCallback(); - - activateNetworkLinkCreatedCallback(); - activateNetworkLinkDestructedCallback(); - activateNetworkLinkStateChangedCallback(); - activateNetworkActionStateChangedCallback(); - - } - - public void init() { - NetworkLink[] route = Surf.getRoute("Jacquelin", "Boivin"); - Msg.info("RouteLength:"+route.length); - Msg.info("RouteName0:"+route[0].getName()); - Msg.info("RouteName1:"+route[1].getName()); + activateNetworkCommunicateCallback(); } - public void cpuCreatedCallback(Cpu cpu) { - Msg.info("Trace: Cpu created "+cpu.getName()); - } - - public void cpuDestructedCallback(Cpu cpu) { - Msg.info("Trace: Cpu destructed "+cpu.getName()); - } - - public void cpuStateChangedCallback(Cpu cpu, ResourceState old, ResourceState cur){ - Msg.info("Trace: Cpu state changed "+cpu.getName()); - } - - public void cpuActionStateChangedCallback(CpuAction action, ActionState old, ActionState cur){ - Msg.info("Trace: CpuAction state changed "+action.getModel().getName()); - } - - public void networkLinkCreatedCallback(NetworkLink link) { - Msg.info("Trace: NetworkLink created "+link.getName()); - } + //HashMap reservations; + double bandwidth = 0; + String src = ""; + String dst = ""; - public void networkLinkDestructedCallback(NetworkLink link) { - Msg.info("Trace: NetworkLink destructed "+link.getName()); + public void limitBandwidthActions(String src, String dst, double bandwidth){ + this.bandwidth = bandwidth; + this.src = src; + this.dst = dst; } - public void networkLinkStateChangedCallback(NetworkLink link, ResourceState old, ResourceState cur){ - Msg.info("Trace: NetworkLink state changed "+link.getName()); + public void updateBandwidthRoute(String src, String dst, double bandwidth){ + NetworkLink[] route = Surf.getRoute(src, dst); + for (int i =0; i - + - + diff --git a/examples/java/reservationSurfPlugin/reservationSurfPluginPlatform.xml b/examples/java/reservationSurfPlugin/reservationSurfPluginPlatform.xml index 2712607497..155dd2d2aa 100644 --- a/examples/java/reservationSurfPlugin/reservationSurfPluginPlatform.xml +++ b/examples/java/reservationSurfPlugin/reservationSurfPluginPlatform.xml @@ -5,9 +5,9 @@ - - - + + + diff --git a/examples/java/reservationSurfPlugin/reservation_surf_plugin.tesh b/examples/java/reservationSurfPlugin/reservation_surf_plugin.tesh index 012094f87a..3d2e4b29b6 100644 --- a/examples/java/reservationSurfPlugin/reservation_surf_plugin.tesh +++ b/examples/java/reservationSurfPlugin/reservation_surf_plugin.tesh @@ -2,26 +2,18 @@ $ java -classpath ${classpath:=.} reservationSurfPlugin/TestPlugin ${srcdir:=.}/reservationSurfPlugin/reservationSurfPluginPlatform.xml ${srcdir:=.}/reservationSurfPlugin/reservationSurfPluginDeployment.xml > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up. -> [0.000000] [jmsg/INFO] Trace: NetworkLink created __loopback__ -> [0.000000] [jmsg/INFO] Trace: NetworkLink state changed __loopback__ -> [0.000000] [jmsg/INFO] Trace: Cpu created Jacquelin -> [0.000000] [jmsg/INFO] Trace: Cpu state changed Jacquelin -> [0.000000] [jmsg/INFO] Trace: Cpu created Boivin -> [0.000000] [jmsg/INFO] Trace: Cpu state changed Boivin -> [0.000000] [jmsg/INFO] Trace: NetworkLink created link -> [0.000000] [jmsg/INFO] Trace: NetworkLink state changed link -> [Jacquelin:surfPlugin.Sender:(1) 0.000000] [jmsg/INFO] helloo! -> [Jacquelin:surfPlugin.Sender:(1) 0.000000] [jmsg/INFO] host count: 1 -> [Jacquelin:surfPlugin.Sender:(1) 0.000000] [jmsg/INFO] sender time: 0.0 -> [Boivin:surfPlugin.Receiver:(2) 0.000000] [jmsg/INFO] helloo! -> [Boivin:surfPlugin.Receiver:(2) 0.000000] [jmsg/INFO] try to get a task -> [1.301001] [jmsg/INFO] Trace: NetworkAction state changed network -> [Boivin:surfPlugin.Receiver:(2) 1.301001] [jmsg/INFO] Got at time 1.3010010824742269 -> [Jacquelin:surfPlugin.Sender:(1) 1.301001] [jmsg/INFO] goodbye! -> [1.301103] [jmsg/INFO] Trace: CpuAction state changed cpu -> [Boivin:surfPlugin.Receiver:(2) 1.301103] [jmsg/INFO] goodbye! -> [1.301103] [jmsg/INFO] MSG_main finished; Cleaning up the simulation... -> [1.301103] [jmsg/INFO] Trace: Cpu destructed Jacquelin -> [1.301103] [jmsg/INFO] Trace: Cpu destructed Boivin -> [1.301103] [jmsg/INFO] Trace: NetworkLink destructed link -> [1.301103] [jmsg/INFO] Trace: NetworkLink destructed __loopback__ +> [Jacquelin:reservationSurfPlugin.Sender:(1) 0.000000] [jmsg/INFO] helloo! +> [Boivin:reservationSurfPlugin.Receiver:(2) 0.000000] [jmsg/INFO] helloo! +> [0.000000] [jmsg/INFO] Trace: Communicate message of size 1.0 with rate -1.0 and bound 1.048576E9 from Jacquelin to Boivin +> [Jacquelin:reservationSurfPlugin.Sender:(1) 0.026021] [jmsg/INFO] Send duration: 0.026021082474226805 +> [Jacquelin:reservationSurfPlugin.Sender:(1) 0.026021] [jmsg/INFO] Trace: bandwidth of link0 before 1000000.0 +> [Jacquelin:reservationSurfPlugin.Sender:(1) 0.026021] [jmsg/INFO] Trace: bandwidth of link0 after 1000.0 +> [Jacquelin:reservationSurfPlugin.Sender:(1) 0.026021] [jmsg/INFO] Trace: bandwidth of link1 before 1000000.0 +> [Jacquelin:reservationSurfPlugin.Sender:(1) 0.026021] [jmsg/INFO] Trace: bandwidth of link1 after 1000.0 +> [0.026021] [jmsg/INFO] Trace: Communicate message of size 1.0 with rate -1.0 and bound 1.048576E9 from Jacquelin to Boivin +> [Jacquelin:reservationSurfPlugin.Sender:(1) 0.053124] [jmsg/INFO] Send duration with update bandwidth: 0.027102474226804125 +> [0.053124] [jmsg/INFO] Trace: Communicate message of size 1.0 with rate -1.0 and bound 100.0 from Jacquelin to Boivin +> [Boivin:reservationSurfPlugin.Receiver:(2) 0.089144] [jmsg/INFO] goodbye! +> [Jacquelin:reservationSurfPlugin.Sender:(1) 0.089144] [jmsg/INFO] Send normal duration with limited bandwidth: 0.036019999999999996 +> [Jacquelin:reservationSurfPlugin.Sender:(1) 0.089144] [jmsg/INFO] goodbye! +> [0.089144] [jmsg/INFO] MSG_main finished; Cleaning up the simulation... diff --git a/src/bindings/java/surf.i b/src/bindings/java/surf.i index 4f247b16f1..28b4f6ea47 100644 --- a/src/bindings/java/surf.i +++ b/src/bindings/java/surf.i @@ -76,11 +76,18 @@ class NetworkLink : public Resource { public: NetworkLink(); ~NetworkLink(); + double getBandwidth(); + void updateBandwidth(double value, double date=surf_get_clock()); + double getLatency(); + void updateLatency(double value, double date=surf_get_clock()); }; class Action { public: Model *getModel(); + lmm_variable *getVariable(); + double getBound(); + void setBound(double bound); }; class CpuAction : public Action { @@ -98,6 +105,12 @@ public: } }; +%nodefaultctor RoutingEdge; +class RoutingEdge { +public: + virtual char *getName()=0; +}; + %rename lmm_constraint LmmConstraint; struct lmm_constraint { %extend { @@ -105,6 +118,13 @@ struct lmm_constraint { } }; +%rename lmm_variable LmmVariable; +struct lmm_variable { +%extend { + double getValue() {return lmm_variable_getvalue($self);} +} +}; + %rename s_xbt_dict XbtDict; struct s_xbt_dict { %extend { diff --git a/src/bindings/java/surf_swig.cpp b/src/bindings/java/surf_swig.cpp index 5432d48d4d..88f0ee665d 100644 --- a/src/bindings/java/surf_swig.cpp +++ b/src/bindings/java/surf_swig.cpp @@ -24,7 +24,6 @@ NetworkLinkDynar getRoute(char *srcName, char *dstName) { xbt_die("TOTO"); if (dst==NULL) xbt_die("TOTO"); - printf("src: %s\ndst: %s\n", src->getName(), dst->getName()); xbt_dynar_t route = xbt_dynar_new(sizeof(RoutingEdgePtr), NULL); routing_platf->getRouteAndLatency(src, dst, &route, NULL); return route; @@ -63,4 +62,9 @@ void Plugin::activateNetworkActionStateChangedCallback(){ 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)); +} + + diff --git a/src/bindings/java/surf_swig.hpp b/src/bindings/java/surf_swig.hpp index 2fad2c3e20..a7e7024ff4 100644 --- a/src/bindings/java/surf_swig.hpp +++ b/src/bindings/java/surf_swig.hpp @@ -43,6 +43,6 @@ public: void activateNetworkActionStateChangedCallback(); virtual void networkActionStateChangedCallback(NetworkAction *action, e_surf_action_state_t old, e_surf_action_state_t cur) {} + void activateNetworkCommunicateCallback(); + virtual void networkCommunicateCallback(NetworkAction *action, RoutingEdge *src, RoutingEdge *dst, double size, double rate) {} }; - -