2 %module(directors="1") Surf
4 %include "arrays_java.i"
6 %pragma(java) jniclassimports=%{
7 import org.simgrid.NativeLib;
9 %pragma(java) jniclasscode=%{
11 NativeLib.nativeInit("surf-java");
12 Runtime.getRuntime().addShutdownHook(
15 Thread.currentThread().setName( "Destroyer" );
24 #include "src/surf/cpu_interface.hpp"
25 #include "src/surf/network_interface.hpp"
26 #include "src/bindings/java/surf_swig.hpp"
27 #include "src/xbt/dict_private.h"
28 typedef struct lmm_constraint *lmm_constraint_t;
31 /* Handle xbt_dynar_t of NetworkLink */
32 JAVA_ARRAYSOFCLASSES(NetworkLink);
33 %apply NetworkLink[] {NetworkLinkDynar};
34 %typemap(jstype) NetworkLinkDynar "NetworkLink[]"
35 %typemap(javain) NetworkLinkDynar "NetworkLink.cArrayUnwrap($javainput)"
37 %typemap(javaout) NetworkLinkDynar {
38 return NetworkLink.cArrayWrap($jnicall, $owner);
40 %typemap(out) NetworkLinkDynar {
41 long l = xbt_dynar_length($1);
42 $result = jenv->NewLongArray(l);
43 NetworkLink **lout = (NetworkLink **)xbt_dynar_to_array($1);
44 jenv->SetLongArrayRegion($result, 0, l, (const jlong*)lout);
48 /* Allow to subclass Plugin and send java object to C++ code */
49 %feature("director") Plugin;
51 %include "src/bindings/java/surf_swig.hpp"
56 const char *getName();
62 const char *getName();
63 virtual bool isUsed()=0;
64 lmm_constraint *getConstraint();
65 s_xbt_dict *getProperties();
68 class Cpu : public Resource {
72 double getCurrentPowerPeak();
75 class NetworkLink : public Resource {
86 class CpuAction : public Action {
89 Cpu *getCpu() {return getActionCpu($self);}
93 %nodefaultctor NetworkAction;
94 class NetworkAction : public Action {
97 double getLatency() {return $self->m_latency;}
101 %rename lmm_constraint LmmConstraint;
102 struct lmm_constraint {
104 double getUsage() {return lmm_constraint_get_usage($self);}
108 %rename s_xbt_dict XbtDict;
111 char *getValue(char *key) {return (char*)xbt_dict_get_or_null($self, key);}