#include "jmsg_host.h"
#include "jmsg_process.h"
#include "jxbt_utilities.h"
-
+#include "msg/msg.h"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(jmsg);
void jvm_bind(JNIEnv *env, jobject jvm, msg_vm_t vm) {
}
}
JNIEXPORT void JNICALL
-Java_org_simgrid_msg_VM_start(JNIEnv *env, jobject jvm, jobject jhost, jint jcoreamount) {
- m_host_t host = jhost_get_native(env, jhost);
+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);
}
-
+JNIEXPORT void JNICALL
+Java_org_simgrid_msg_VM_destroy(JNIEnv *env, jobject jvm) {
+ msg_vm_t vm = jvm_get_native(env,jvm);
+ MSG_vm_destroy(vm);
+}
JNIEXPORT jboolean JNICALL
Java_org_simgrid_msg_VM_isSuspended(JNIEnv *env, jobject jvm) {
msg_vm_t vm = jvm_get_native(env,jvm);
JNIEXPORT void JNICALL
Java_org_simgrid_msg_VM_bind(JNIEnv *env, jobject jvm, jobject jprocess) {
msg_vm_t vm = jvm_get_native(env,jvm);
- m_process_t process = jprocess_to_native_process(jprocess,env);
+ msg_process_t process = jprocess_to_native_process(jprocess,env);
xbt_assert((vm != NULL), "VM object is not binded");
xbt_assert((process != NULL), "Process object is not binded.");
JNIEXPORT void JNICALL
Java_org_simgrid_msg_VM_unbind(JNIEnv *env, jobject jvm, jobject jprocess) {
msg_vm_t vm = jvm_get_native(env,jvm);
- m_process_t process = jprocess_to_native_process(jprocess,env);
+ msg_process_t process = jprocess_to_native_process(jprocess,env);
MSG_vm_unbind(vm,process);
}
JNIEXPORT void JNICALL
Java_org_simgrid_msg_VM_migrate(JNIEnv *env, jobject jvm, jobject jhost) {
msg_vm_t vm = jvm_get_native(env,jvm);
- m_host_t host = jhost_get_native(env, jhost);
+ msg_host_t host = jhost_get_native(env, jhost);
MSG_vm_migrate(vm,host);
}
JNIEXPORT void JNICALL
Java_org_simgrid_msg_VM_suspend(JNIEnv *env, jobject jvm) {
msg_vm_t vm = jvm_get_native(env,jvm);
-
- MSG_vm_suspend(vm);
+ xbt_ex_t e;
+ TRY {
+ MSG_vm_suspend(vm);
+ }
+ CATCH(e) {
+ xbt_ex_free(e);
+ }
}
JNIEXPORT void JNICALL
Java_org_simgrid_msg_VM_resume(JNIEnv *env, jobject jvm) {
msg_vm_t vm = jvm_get_native(env,jvm);
-
- MSG_vm_resume(vm);
+ xbt_ex_t e;
+ TRY {
+ MSG_vm_resume(vm);
+ }
+ CATCH(e) {
+ xbt_ex_free(e);
+ }
}
JNIEXPORT void JNICALL
Java_org_simgrid_msg_VM_shutdown(JNIEnv *env, jobject jvm) {
msg_vm_t vm = jvm_get_native(env,jvm);
-
- MSG_vm_shutdown(vm);
+ xbt_ex_t e;
+ TRY {
+ MSG_vm_shutdown(vm);
+ }
+ CATCH(e) {
+ xbt_ex_free(e);
+ }
+}
+JNIEXPORT void JNICALL
+Java_org_simgrid_msg_VM_reboot(JNIEnv *env, jobject jvm) {
+ msg_vm_t vm = jvm_get_native(env,jvm);
+ xbt_ex_t e;
+ TRY {
+ MSG_vm_reboot(vm);
+ }
+ CATCH(e) {
+ xbt_ex_free(e);
+ }
}