X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ff44f283112e6d05575f5e243080f27d395140d8..a6c64d74cc84ef31accb835f570f990f5c45ecf8:/src/bindings/java/jmsg_task.cpp diff --git a/src/bindings/java/jmsg_task.cpp b/src/bindings/java/jmsg_task.cpp index f51a8f4e7c..b8ebf844fb 100644 --- a/src/bindings/java/jmsg_task.cpp +++ b/src/bindings/java/jmsg_task.cpp @@ -253,25 +253,6 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_setBytesAmount (JNIEnv *env, jo MSG_task_set_bytes_amount(task, static_cast(dataSize)); } -JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_send(JNIEnv * env,jobject jtask, jstring jalias, jdouble jtimeout) -{ - msg_task_t task = jtask_to_native(jtask, env); - if (!task) { - jxbt_throw_notbound(env, "task", jtask); - return; - } - - /* Add a global ref into the Ctask so that the receiver can use it */ - MSG_task_set_data(task, (void *) env->NewGlobalRef(jtask)); - - const char* alias = env->GetStringUTFChars(jalias, 0); - msg_error_t res = MSG_task_send_with_timeout(task, alias, static_cast(jtimeout)); - env->ReleaseStringUTFChars(jalias, alias); - - if (res != MSG_OK) - jmsg_throw_status(env, res); -} - JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_sendBounded(JNIEnv * env,jobject jtask, jstring jalias, jdouble jtimeout,jdouble maxrate) { @@ -293,23 +274,12 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_sendBounded(JNIEnv * env,jobjec jmsg_throw_status(env, res); } -JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_receive(JNIEnv * env, jclass cls, jstring jalias, jdouble jtimeout, - jobject jhost) +JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_receive(JNIEnv* env, jclass cls, jstring jalias, jdouble jtimeout) { msg_task_t task = nullptr; - msg_host_t host = nullptr; - - if (jhost) { - host = jhost_get_native(env, jhost); - - if (!host) { - jxbt_throw_notbound(env, "host", jhost); - return nullptr; - } - } const char *alias = env->GetStringUTFChars(jalias, 0); - msg_error_t rv = MSG_task_receive_ext(&task, alias, (double) jtimeout, host); + msg_error_t rv = MSG_task_receive_ext(&task, alias, (double)jtimeout, /*host*/ nullptr); env->ReleaseStringUTFChars(jalias, alias); if (env->ExceptionOccurred()) return nullptr; @@ -324,7 +294,6 @@ JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_receive(JNIEnv * env, jclass env->DeleteGlobalRef(jtask_global); MSG_task_set_data(task, nullptr); - return (jobject) jtask_local; } @@ -355,43 +324,29 @@ JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_irecv(JNIEnv * env, jclass c return jcomm; } -JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_receiveBounded(JNIEnv * env, jclass cls, jstring jalias, - jdouble jtimeout, jobject jhost, jdouble rate) +JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_receiveBounded(JNIEnv* env, jclass cls, jstring jalias, + jdouble jtimeout, jdouble rate) { - msg_error_t rv; - msg_task_t *task = xbt_new(msg_task_t,1); - *task = nullptr; - - msg_host_t host = nullptr; - - if (jhost) { - host = jhost_get_native(env, jhost); - - if (!host) { - jxbt_throw_notbound(env, "host", jhost); - return nullptr; - } - } + msg_task_t task = nullptr; const char *alias = env->GetStringUTFChars(jalias, 0); - rv = MSG_task_receive_ext_bounded(task, alias, static_cast(jtimeout), host, static_cast(rate)); + msg_error_t res = MSG_task_receive_ext_bounded(&task, alias, static_cast(jtimeout), /*host*/ nullptr, + static_cast(rate)); if (env->ExceptionOccurred()) return nullptr; - if (rv != MSG_OK) { - jmsg_throw_status(env,rv); + if (res != MSG_OK) { + jmsg_throw_status(env, res); return nullptr; } - jobject jtask_global = (jobject) MSG_task_get_data(*task); + jobject jtask_global = (jobject)MSG_task_get_data(task); /* Convert the global ref into a local ref so that the JVM can free the stuff */ jobject jtask_local = env->NewLocalRef(jtask_global); env->DeleteGlobalRef(jtask_global); - MSG_task_set_data(*task, nullptr); + MSG_task_set_data(task, nullptr); env->ReleaseStringUTFChars(jalias, alias); - xbt_free(task); - return (jobject) jtask_local; }