Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge commit '4df273f15273f959fc9e6ed69d2bf5e607ec9bf7' into HEAD
authorPaul Bédaride <paul.bedaride@gmail.com>
Wed, 30 Jan 2013 17:20:59 +0000 (18:20 +0100)
committerPaul Bédaride <paul.bedaride@gmail.com>
Wed, 30 Jan 2013 17:20:59 +0000 (18:20 +0100)
examples/cloud/Master.java
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 2a46bc5..1551521 100644 (file)
@@ -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
+}
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 be6f085..7943ed4 100644 (file)
@@ -301,4 +301,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..cf17157 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_vm_variable_set(vm, state, value);
+
+  (*env)->ReleaseStringUTFChars(env, js_vm, vm);
+  (*env)->ReleaseStringUTFChars(env, js_state, state);
+}
index 5c435ed..62d9160 100644 (file)
@@ -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