From: Jonathan Rouzaud-Cornabas Date: Thu, 11 Oct 2012 13:26:44 +0000 (+0200) Subject: Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid-java... X-Git-Tag: v3_9_90~569^2~19^2~8^2~4 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/6b8bd81709e9038d33873b8ce8a81d95350ee913?hp=09a290ffd1439c528f8e09d79d7f6a0f054c498b Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid-java into vmtrace --- diff --git a/examples/cloud/Master.java b/examples/cloud/Master.java index 2a46bc5266..1551521c1a 100644 --- a/examples/cloud/Master.java +++ b/examples/cloud/Master.java @@ -30,7 +30,7 @@ public class Master extends Process { for (int i = 0; i < slavesCount; i++) { Slave slave = new Slave(hosts[i],i); slave.start(); - VM vm = new VM(hosts[i],1); + VM vm = new VM(hosts[i],hosts[i]+"_"+i,1); vm.bind(slave); vms.add(vm); } @@ -93,4 +93,4 @@ public class Master extends Process { task.send("slave_" + i); } } -} \ No newline at end of file +} diff --git a/org/simgrid/msg/VM.java b/org/simgrid/msg/VM.java index 3de79f9343..525ea391e8 100644 --- a/org/simgrid/msg/VM.java +++ b/org/simgrid/msg/VM.java @@ -22,14 +22,17 @@ public class VM { private long bind = 0; private int coreAmount; + + private String name; /** * @brief Create a new empty VM. * @bug it is expected that in the future, the coreAmount parameter will be used * to add extra constraints on the execution, but the argument is ignored for now. */ - public VM(Host host, int coreAmount) { + public VM(Host host, String name, int coreAmount) { this.coreAmount = coreAmount; - start(host,coreAmount); + this.name = name; + start(host,name,coreAmount); } protected void finalize() { destroy(); @@ -42,7 +45,7 @@ public class VM { * Natively implemented method starting the VM. * @param coreAmount */ - private native void start(Host host, int coreAmount); + private native void start(Host host, String name, int coreAmount); /** @brief Returns whether the given VM is currently suspended */ @@ -88,5 +91,8 @@ public class VM { * @brief Reboot the VM, restarting all the processes in it. */ public native void reboot(); - -} \ No newline at end of file + + public String getName() { + return name; + } +} diff --git a/org/simgrid/trace/Trace.java b/org/simgrid/trace/Trace.java index daeed7dd5f..ede59a5747 100644 --- a/org/simgrid/trace/Trace.java +++ b/org/simgrid/trace/Trace.java @@ -26,13 +26,7 @@ public final class Trace { // TODO complete the binding of the tracing API - /** - * Declare a new user variable associated to hosts. - * - * @param variable - */ - public final static native void hostVariableDeclare (String variable); - + /** * Declare a new user variable associated to hosts with a color. * @@ -41,15 +35,7 @@ public final class Trace { */ public final static native void hostVariableDeclareWithColor (String variable, String color); - /** - * Set the value of a variable of a host. - * - * @param host - * @param variable - * @param value - */ - public final static native void hostVariableSet (String host, String variable, double value); - + /** * Add a value to a variable of a host. * @@ -296,5 +282,37 @@ public final class Trace { */ public final static native void hostPopState (String host, String state); - + /** + * Declare a new user variable associated to hosts. + * + * @param variable + */ + public final static native void hostVariableDeclare (String variable); + + + /** + * Set the value of a variable of a host. + * + * @param host + * @param variable + * @param value + */ + public final static native void hostVariableSet (String host, String variable, double value); + + /** + * Declare a new user variable associated to VMs. + * + * @param variable + */ + public final static native void vmVariableDeclare (String variable); + + + /** + * Set the value of a variable of a VM. + * + * @param host + * @param variable + * @param value + */ + public final static native void vmVariableSet (String vm, String variable, double value); } diff --git a/src/jmsg_vm.c b/src/jmsg_vm.c index ffa971486e..7e98a81d1e 100644 --- a/src/jmsg_vm.c +++ b/src/jmsg_vm.c @@ -28,10 +28,14 @@ Java_org_simgrid_msg_VM_nativeInit(JNIEnv *env, jclass cls) { } } JNIEXPORT void JNICALL -Java_org_simgrid_msg_VM_start(JNIEnv *env, jobject jvm, jobject jhost, jint jcoreamount) { +Java_org_simgrid_msg_VM_start(JNIEnv *env, jobject jvm, jobject jhost, jstring jname, jint jcoreamount) { msg_host_t host = jhost_get_native(env, jhost); - msg_vm_t vm = MSG_vm_start(host, (int)jcoreamount); + const char *name; + name = (*env)->GetStringUTFChars(env, jname, 0); + name = xbt_strdup(name); + + msg_vm_t vm = MSG_vm_start(host, name, (int)jcoreamount); jvm_bind(env,jvm,vm); } diff --git a/src/jmsg_vm.h b/src/jmsg_vm.h index 79106fd8ba..4933969e43 100644 --- a/src/jmsg_vm.h +++ b/src/jmsg_vm.h @@ -30,7 +30,7 @@ Java_org_simgrid_msg_VM_nativeInit(JNIEnv *env, jclass); * Signature (I)V */ JNIEXPORT void JNICALL -Java_org_simgrid_msg_VM_start(JNIEnv *env, jobject jvm, jobject jhost, jint jcoreamount); +Java_org_simgrid_msg_VM_start(JNIEnv *env, jobject jvm, jobject jhost, jstring jname, jint jcoreamount); /** * Class org_simgrid_msg_VM * Method destroy diff --git a/src/jtrace.c b/src/jtrace.c index c279a14ccb..cf17157079 100644 --- a/src/jtrace.c +++ b/src/jtrace.c @@ -90,3 +90,47 @@ Java_org_simgrid_trace_Trace_hostPopState (*env)->ReleaseStringUTFChars(env, js_host, host); (*env)->ReleaseStringUTFChars(env, js_state, state); } + +JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableDeclare + (JNIEnv *env, jclass cls, jstring js_state) +{ + const char *state = (*env)->GetStringUTFChars(env, js_state, 0); + + TRACE_host_variable_declare(state); + + (*env)->ReleaseStringUTFChars(env, js_state, state); +} + +JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSet + (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jdouble value) +{ + const char *host = (*env)->GetStringUTFChars(env, js_host, 0); + const char *state = (*env)->GetStringUTFChars(env, js_state, 0); + + TRACE_host_variable_set(host, state, value); + + (*env)->ReleaseStringUTFChars(env, js_host, host); + (*env)->ReleaseStringUTFChars(env, js_state, state); +} + +JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableDeclare + (JNIEnv *env, jclass cls, jstring js_state) +{ + const char *state = (*env)->GetStringUTFChars(env, js_state, 0); + + TRACE_vm_variable_declare(state); + + (*env)->ReleaseStringUTFChars(env, js_state, state); +} + +JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableSet + (JNIEnv *env, jclass cls, jstring js_vm, jstring js_state, jdouble value) +{ + const char *vm = (*env)->GetStringUTFChars(env, js_vm, 0); + const char *state = (*env)->GetStringUTFChars(env, js_state, 0); + + TRACE_vm_variable_set(vm, state, value); + + (*env)->ReleaseStringUTFChars(env, js_vm, vm); + (*env)->ReleaseStringUTFChars(env, js_state, state); +} diff --git a/src/jtrace.h b/src/jtrace.h index 5c435ed8a4..62d9160574 100644 --- a/src/jtrace.h +++ b/src/jtrace.h @@ -15,6 +15,15 @@ extern "C" { JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableDeclare (JNIEnv *, jclass, jstring); +/* + * Class: org_simgrid_trace_Trace + * Method: vmVariableDeclare + * Signature: (Ljava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableDeclare + (JNIEnv *, jclass, jstring); + + /* * Class: org_simgrid_trace_Trace * Method: hostVariableDeclareWithColor @@ -31,6 +40,15 @@ JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableDeclareWithColor JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSet (JNIEnv *, jclass, jstring, jstring, jdouble); +/* + * Class: org_simgrid_trace_Trace + * Method: vmVariableSet + * Signature: (Ljava/lang/String;Ljava/lang/String;D)V + */ +JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableSet + (JNIEnv *, jclass, jstring, jstring, jdouble); + + /* * Class: org_simgrid_trace_Trace * Method: hostVariableAdd