Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Modify Trace to support VM
authorJonathan Rouzaud-Cornabas <jonathan.rouzaud-cornabas@ens-lyon.fr>
Thu, 9 Aug 2012 12:14:29 +0000 (14:14 +0200)
committerJonathan Rouzaud-Cornabas <jonathan.rouzaud-cornabas@ens-lyon.fr>
Thu, 9 Aug 2012 12:14:29 +0000 (14:14 +0200)
org/simgrid/msg/VM.java
org/simgrid/trace/Trace.java
src/jmsg_vm.c
src/jmsg_vm.h
src/jtrace.c
src/jtrace.h

index 3de79f9..525ea39 100644 (file)
@@ -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;
+       }               
+}
index f43a9a2..ede59a5 100644 (file)
@@ -298,4 +298,21 @@ public final class Trace {
         * @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);
 }
index ffa9714..7e98a81 100644 (file)
@@ -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);
 }
index 79106fd..4933969 100644 (file)
@@ -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
index df2d878..b207a88 100644 (file)
@@ -112,3 +112,25 @@ JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSet
   (*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_host_variable_set(vm, state, value);
+
+  (*env)->ReleaseStringUTFChars(env, js_vm, vm);
+  (*env)->ReleaseStringUTFChars(env, js_state, state);
+}
index 5c435ed..62d9160 100644 (file)
@@ -17,6 +17,15 @@ JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableDeclare
 
 /*
  * 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
  * Signature: (Ljava/lang/String;Ljava/lang/String;)V
  */
@@ -33,6 +42,15 @@ JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSet
 
 /*
  * 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
  * Signature: (Ljava/lang/String;Ljava/lang/String;D)V
  */