X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/77bbf3027c4240a2e833209a3a3f186589da8577..32892d0df7206a7c14ace5a13f985df1e0a9249a:/src/bindings/java/jmsg_process.cpp diff --git a/src/bindings/java/jmsg_process.cpp b/src/bindings/java/jmsg_process.cpp index 1d4b58eadf..f914fc859c 100644 --- a/src/bindings/java/jmsg_process.cpp +++ b/src/bindings/java/jmsg_process.cpp @@ -1,23 +1,20 @@ /* Functions related to the java process instances. */ -/* Copyright (c) 2007-2017. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -#include - #include "jmsg_process.h" #include "JavaContext.hpp" #include "jmsg.hpp" #include "jmsg_host.h" #include "jxbt_utilities.hpp" +#include "simgrid/Exception.hpp" XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(java); -extern "C" { - jfieldID jprocess_field_Process_bind; jfieldID jprocess_field_Process_host; jfieldID jprocess_field_Process_killTime; @@ -27,7 +24,8 @@ jfieldID jprocess_field_Process_ppid; jobject jprocess_from_native(msg_process_t process) { - simgrid::kernel::context::JavaContext* context = (simgrid::kernel::context::JavaContext*) MSG_process_get_smx_ctx(process); + simgrid::kernel::context::JavaContext* context = + (simgrid::kernel::context::JavaContext*)process->get_impl()->context_; return context->jprocess; } @@ -100,12 +98,12 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_daemonize(JNIEnv* env, jobje return; } - MSG_process_daemonize(process); + process->daemonize(); } -JNIEXPORT jint JNICALL Java_org_simgrid_msg_Process_killAll(JNIEnv * env, jclass cls, jint jresetPID) +JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_killAll(JNIEnv* env, jclass cls) { - return (jint) MSG_process_killall((int) jresetPID); + MSG_process_killall(); } JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_fromPID(JNIEnv * env, jclass cls, jint pid) @@ -127,6 +125,12 @@ JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_fromPID(JNIEnv * env, jcl return jprocess; } +JNIEXPORT jint JNICALL Java_org_simgrid_msg_Process_nativeGetPID(JNIEnv* env, jobject jprocess) +{ + msg_process_t process = jprocess_to_native(jprocess, env); + return MSG_process_get_PID(process); +} + JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_getProperty(JNIEnv *env, jobject jprocess, jobject jname) { msg_process_t process = jprocess_to_native(jprocess, env); @@ -165,10 +169,8 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_suspend(JNIEnv * env, jobjec return; } - /* try to suspend the process */ - msg_error_t rv = MSG_process_suspend(process); - - jxbt_check_res("MSG_process_suspend()", rv, MSG_OK, "unexpected error , please report this bug"); + /* suspend the process */ + process->suspend(); } JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_resume(JNIEnv * env, jobject jprocess) @@ -180,9 +182,8 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_resume(JNIEnv * env, jobject return; } - /* try to resume the process */ - msg_error_t res = MSG_process_resume(process); - jxbt_check_res("MSG_process_resume()", res, MSG_OK, "unexpected error , please report this bug"); + /* resume the process */ + process->resume(); } JNIEXPORT void @@ -194,7 +195,7 @@ JNICALL Java_org_simgrid_msg_Process_setAutoRestart (JNIEnv *env, jobject jproce return; } - MSG_process_auto_restart_set(process, (jauto_restart == JNI_TRUE)); + process->set_auto_restart(jauto_restart == JNI_TRUE); } JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_restart (JNIEnv *env, jobject jprocess) { @@ -205,7 +206,7 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_restart (JNIEnv *env, jobjec return; } - MSG_process_restart(process); + process->restart(); } JNIEXPORT jboolean JNICALL Java_org_simgrid_msg_Process_isSuspended(JNIEnv * env, jobject jprocess) @@ -218,7 +219,7 @@ JNIEXPORT jboolean JNICALL Java_org_simgrid_msg_Process_isSuspended(JNIEnv * env } /* true is the process is suspended, false otherwise */ - return (jboolean) MSG_process_is_suspended(process); + return (jboolean)process->is_suspended(); } JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_sleep(JNIEnv *env, jclass cls, jlong jmillis, jint jnanos) @@ -278,12 +279,9 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_migrate(JNIEnv * env, jobjec return; } - /* try to change the host of the process */ - msg_error_t rv = MSG_process_migrate(process, host); - if (rv != MSG_OK) { - jmsg_throw_status(env,rv); - return; - } + /* change the host of the process */ + process->migrate(host); + /* change the host java side */ env->SetObjectField(jprocess, jprocess_field_Process_host, jhost); } @@ -301,4 +299,3 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_setKillTime (JNIEnv *env , j JNIEXPORT jint JNICALL Java_org_simgrid_msg_Process_getCount(JNIEnv * env, jclass cls) { return (jint) MSG_process_get_number(); } -}