X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2c8820859cfc00e1cbf4ba9cbfafadcb827b6197..cbf284725ad8abc7b3baa8aec1d51950f23561e3:/src/bindings/java/surf.i diff --git a/src/bindings/java/surf.i b/src/bindings/java/surf.i index 70006b3936..43d2c27ecf 100644 --- a/src/bindings/java/surf.i +++ b/src/bindings/java/surf.i @@ -16,7 +16,7 @@ import org.simgrid.NativeLib; %} %pragma(java) jniclasscode=%{ static { - NativeLib.nativeInit("surf-java"); + org.simgrid.NativeLib.nativeInit(); Runtime.getRuntime().addShutdownHook( new Thread() { public void run() { @@ -98,7 +98,7 @@ GETDIRECTOR(CpuAction) %typemap(freearg) char* name { } -/* Handle xbt_dynar_t of NetworkLink */ +/* Handle xbt_dynar_t of Link */ JAVA_ARRAYSOFCLASSES(Action); %apply Action[] {ActionArrayPtr}; %typemap(jstype) ActionArrayPtr "Action[]" @@ -120,7 +120,7 @@ JAVA_ARRAYSOFCLASSES(Action); jlong *elts = jenv->GetLongArrayElements($result, NULL); l = 0; for(ActionList::iterator it($1->begin()), itend($1->end()); it != itend ; ++it) { - elts[l++] = (jlong)static_cast(&*it); + elts[l++] = (jlong)static_cast(&*it); } jenv->ReleaseLongArrayElements($result, elts, 0); } @@ -136,19 +136,19 @@ public: } }; -/* Handle xbt_dynar_t of NetworkLink */ -JAVA_ARRAYSOFCLASSES(NetworkLink); -%apply NetworkLink[] {NetworkLinkDynar}; -%typemap(jstype) NetworkLinkDynar "NetworkLink[]" -%typemap(javain) NetworkLinkDynar "NetworkLink.cArrayUnwrap($javainput)" -%typemap(javaout) NetworkLinkDynar { - return NetworkLink.cArrayWrap($jnicall, $owner); +/* Handle xbt_dynar_t of Link */ +JAVA_ARRAYSOFCLASSES(Link); +%apply Link[] {LinkDynar}; +%typemap(jstype) LinkDynar "Link[]" +%typemap(javain) LinkDynar "Link.cArrayUnwrap($javainput)" +%typemap(javaout) LinkDynar { + return Link.cArrayWrap($jnicall, $owner); } -%typemap(out) NetworkLinkDynar { +%typemap(out) LinkDynar { long l = xbt_dynar_length($1); $result = jenv->NewLongArray(l); unsigned i; - NetworkLink *link; + Link *link; jlong *elts = jenv->GetLongArrayElements($result, NULL); xbt_dynar_foreach($1, i, link) { elts[i] = (jlong)link; @@ -165,17 +165,15 @@ JAVA_ARRAYSOFCLASSES(NetworkLink); %typemap(out) DoubleDynar { long l = xbt_dynar_length($1); $result = jenv->NewDoubleArray(l); - double *lout = (double *)xbt_dynar_to_array($1); - jenv->SetDoubleArrayRegion($result, 0, l, (const jdouble*)lout); - free(lout); + double *lout = (double *) xbt_dynar_get_ptr($1, 0); + jenv->SetDoubleArrayRegion($result, 0, l, (jdouble*)lout); } %typemap(javadirectorin) DoubleDynar "$jniinput" %typemap(directorin,descriptor="[D") DoubleDynar %{ long l = xbt_dynar_length($1); $input = jenv->NewDoubleArray(l); - double *lout = (double *)xbt_dynar_to_array($1); - jenv->SetDoubleArrayRegion($input, 0, l, (const jdouble*)lout); - free(lout); + double *lout = (double *) xbt_dynar_get_ptr($1, 0); + jenv->SetDoubleArrayRegion($input, 0, l, (jdouble*)lout); %} %typemap(javain) DoubleDynar "$javainput" %typemap(javaout) DoubleDynar {return $jnicall} @@ -235,8 +233,8 @@ struct tmgr_trace_event { %nodefaultctor Model; class Model { public: - Model(const char *name); - const char *getName(); + Model(); + virtual double shareResources(double now); virtual double shareResourcesLazy(double now); virtual double shareResourcesFull(double now); @@ -246,20 +244,21 @@ public: virtual void updateActionsStateFull(double now, double delta); virtual ActionList *getRunningActionSet(); + + virtual void addTraces()=0; }; %feature("director") CpuModel; class CpuModel : public Model { public: - CpuModel(const char *name); + CpuModel(); virtual ~CpuModel(); - virtual Cpu *createResource(const char *name, DoubleDynar power_peak, + virtual Cpu *createCpu(const char *name, DoubleDynar power_peak, int pstate, double power_scale, tmgr_trace *power_trace, int core, e_surf_resource_state_t state_initial, tmgr_trace *state_trace, s_xbt_dict *cpu_properties)=0; - virtual void addTraces()=0; }; class Resource { @@ -291,14 +290,15 @@ public: virtual double getAvailableSpeed(); virtual double getPowerPeakAt(int pstate_index)=0; virtual int getNbPstates()=0; - virtual void setPowerPeakAt(int pstate_index)=0; + virtual void setPstate(int pstate_index)=0; + virtual int getPstate()=0; void setState(e_surf_resource_state_t state); }; -class NetworkLink : public Resource { +class Link : public Resource { public: - NetworkLink(); - ~NetworkLink(); + Link(); + ~Link(); double getBandwidth(); void updateBandwidth(double value, double date=surf_get_clock()); double getLatency();