X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1bfdc9a38c22af6a9becf133be154a2fa2bc6589..a8c316ac06c17368f52aff8c009e63421103cc24:/src/bindings/java/surf.i diff --git a/src/bindings/java/surf.i b/src/bindings/java/surf.i index 70006b3936..3b78ab2728 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() { @@ -46,11 +46,13 @@ extern "C" { #endif JNIEXPORT jobject JNICALL Java_org_simgrid_surf_SurfJNI_getAction(JNIEnv *env, jclass cls, jlong jarg1) { - Action * action = (Action *)jarg1; + simgrid::surf::Action * action = (simgrid::surf::Action *)jarg1; jobject res; - CpuAction *cpu_action = dynamic_cast(action); + simgrid::surf::CpuAction *cpu_action = + dynamic_cast(action); if (cpu_action) { - SwigDirector_CpuAction *dir_cpu_action = dynamic_cast(cpu_action); + SwigDirector_CpuAction *dir_cpu_action = + dynamic_cast(cpu_action); if (dir_cpu_action) { res = dir_cpu_action->swig_get_self(env);\ } else { @@ -71,7 +73,7 @@ JNIEXPORT jobject JNICALL Java_org_simgrid_surf_SurfJNI_getAction(JNIEnv *env, j #define GETDIRECTOR(NAME) \ JNIEXPORT jobject JNICALL Java_org_simgrid_surf_SurfJNI_get## NAME ## Director(JNIEnv *env, jclass cls, jlong jarg1)\ {\ - NAME * arg1 = (NAME*)jarg1;\ + simgrid::surf::NAME * arg1 = (simgrid::surf::NAME*)jarg1;\ SwigDirector_ ##NAME *director = dynamic_cast(arg1);\ jobject res;\ if (director) {\ @@ -98,7 +100,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[]" @@ -113,18 +115,21 @@ JAVA_ARRAYSOFCLASSES(Action); } %typemap(out) ActionArrayPtr { long l = 0; - for(ActionList::iterator it($1->begin()), itend($1->end()); it != itend ; ++it) { + for(simgrid::surf::ActionList::iterator it($1->begin()), itend($1->end()); it != itend ; ++it) { l++; } $result = jenv->NewLongArray(l); 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); + for(simgrid::surf::ActionList::iterator it($1->begin()), itend($1->end()); it != itend ; ++it) { + elts[l++] = (jlong)static_cast(&*it); } jenv->ReleaseLongArrayElements($result, elts, 0); } +namespace simgrid { +namespace surf { + class ActionList { public: //void push_front(Action &action); @@ -136,19 +141,22 @@ 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); } -%typemap(out) NetworkLinkDynar { +} + +/* Handle xbt_dynar_t of Link */ +JAVA_ARRAYSOFCLASSES(simgrid::surf::Link); +%apply simgrid::surf::Link[] {LinkDynar}; +%typemap(jstype) LinkDynar "Link[]" +%typemap(javain) LinkDynar "Link.cArrayUnwrap($javainput)" +%typemap(javaout) LinkDynar { + return Link.cArrayWrap($jnicall, $owner); +} +%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 +173,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} @@ -202,6 +208,29 @@ JAVA_ARRAYSOFCLASSES(NetworkLink); %include "src/bindings/java/surf_swig.hpp" +namespace simgrid { +namespace surf { + +class Model; +class CpuModel; +class HostModel; +class VMModel; +class NetworkModel; +class StorageModel; +class Resource; +class ResourceLmm; +class Host; +class HostCLM03; +class NetworkCm02Link; +class Action; +class ActionLmm; +class StorageActionLmm; +class As; +class RoutingPlatf; + +} +} + %rename tmgr_trace TmgrTrace; %nodefaultctor tmgr_trace; struct tmgr_trace { @@ -232,11 +261,14 @@ struct tmgr_trace_event { } }; +namespace simgrid { +namespace surf { + %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); @@ -245,21 +277,22 @@ public: virtual void updateActionsStateLazy(double now, double delta); virtual void updateActionsStateFull(double now, double delta); - virtual ActionList *getRunningActionSet(); + virtual simgrid::surf::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 simgrid::surf::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; + tmgr_trace *state_trace)=0; }; class Resource { @@ -267,42 +300,43 @@ public: Resource(); const char *getName(); virtual bool isUsed()=0; - Model *getModel(); + simgrid::surf::Model *getModel(); virtual e_surf_resource_state_t getState(); lmm_constraint *getConstraint(); - s_xbt_dict *getProperties(); virtual void updateState(tmgr_trace_event *event_type, double value, double date)=0; }; %feature("director") Cpu; class Cpu : public Resource { public: - Cpu(Model *model, const char *name, s_xbt_dict *props, + Cpu(simgrid::surf::Model *model, const char *name, lmm_constraint *constraint, int core, double powerPeak, double powerScale); - Cpu(Model *model, const char *name, s_xbt_dict *props, + Cpu(simgrid::surf::Model *model, const char *name, int core, double powerPeak, double powerScale); virtual ~Cpu(); virtual double getCurrentPowerPeak(); - virtual CpuAction *execute(double size)=0; - virtual CpuAction *sleep(double duration)=0; + virtual simgrid::surf::CpuAction *execute(double size)=0; + virtual simgrid::surf::CpuAction *sleep(double duration)=0; virtual int getCore(); virtual double getSpeed(double load); 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 simgrid::surf::Resource { public: - NetworkLink(); - ~NetworkLink(); + Link(); + ~Link(); double getBandwidth(); void updateBandwidth(double value, double date=surf_get_clock()); double getLatency(); void updateLatency(double value, double date=surf_get_clock()); + s_xbt_dict *getProperties(); }; %nodefaultctor Action; @@ -328,7 +362,7 @@ class CpuAction : public Action { public: CpuAction(Model *model, double cost, bool failed); %extend { - Cpu *getCpu() {return getActionCpu($self);} + simgrid::surf::Cpu *getCpu() {return getActionCpu($self);} } }; @@ -347,6 +381,9 @@ public: virtual char *getName()=0; }; +} +} + %rename lmm_constraint LmmConstraint; struct lmm_constraint { %extend {