X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/652eb99105d979fcd897c2f26cfbce0f7d81ecd3..5e1b4fa835cedc144a2ebe97fda0d139d63d3058:/src/bindings/java/jmsg.cpp diff --git a/src/bindings/java/jmsg.cpp b/src/bindings/java/jmsg.cpp index 05add7cd0f..f8fff3947d 100644 --- a/src/bindings/java/jmsg.cpp +++ b/src/bindings/java/jmsg.cpp @@ -6,10 +6,14 @@ /* 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 #include -#include "simgrid/plugins/energy.h" -#include +#include + +#include + #include #include "jmsg_process.h" @@ -22,6 +26,8 @@ #include "JavaContext.hpp" +#include + /* Shut up some errors in eclipse online compiler. I wish such a pimple wouldn't be needed */ #ifndef JNIEXPORT #define JNIEXPORT @@ -103,7 +109,7 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_init(JNIEnv * env, jclass cls, j env->GetJavaVM(&__java_vm); - simgrid::simix::factory_initializer = simgrid::java::java_factory; + simgrid::kernel::context::factory_initializer = &simgrid::kernel::context::java_factory; jthrowable exc = env->ExceptionOccurred(); if (exc) { env->ExceptionClear(); @@ -181,7 +187,7 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_createEnvironment(JNIEnv * env, JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Msg_environmentGetRoutingRoot(JNIEnv * env, jclass cls) { - msg_as_t as = MSG_environment_get_routing_root(); + msg_netzone_t as = MSG_environment_get_routing_root(); jobject jas = jas_new_instance(env); if (!jas) { jxbt_throw_jni(env, "java As instantiation failed"); @@ -263,16 +269,14 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_energyInit() { */ static void run_jprocess(JNIEnv *env, jobject jprocess) { - xbt_assert(jprocess != nullptr, "Process not created..."); - //wait for the process to be able to begin - //TODO: Cache it + // wait for the process's start time jfieldID jprocess_field_Process_startTime = jxbt_get_sfield(env, "org/simgrid/msg/Process", "startTime", "D"); jdouble startTime = env->GetDoubleField(jprocess, jprocess_field_Process_startTime); if (startTime > MSG_get_clock()) MSG_process_sleep(startTime - MSG_get_clock()); //Execution of the "run" method. jmethodID id = jxbt_get_smethod(env, "org/simgrid/msg/Process", "run", "()V"); - xbt_assert( (id != nullptr), "Method not found..."); + xbt_assert((id != nullptr), "Method run() not found..."); env->CallVoidMethod(jprocess, id); } @@ -280,7 +284,7 @@ static void run_jprocess(JNIEnv *env, jobject jprocess) static int java_main(int argc, char *argv[]) { JNIEnv *env = get_current_thread_env(); - simgrid::java::JavaContext* context = static_cast(SIMIX_context_self()); + simgrid::kernel::context::JavaContext* context = static_cast(SIMIX_context_self()); //Change the "." in class name for "/". xbt_str_subst(argv[0],'.','/',0); @@ -299,7 +303,7 @@ static int java_main(int argc, char *argv[]) for (int i = 1; i < argc; i++) env->SetObjectArrayElement(args,i - 1, env->NewStringUTF(argv[i])); //Retrieve the host for the process. - jstring jhostName = env->NewStringUTF(MSG_host_get_name(MSG_host_self())); + jstring jhostName = env->NewStringUTF(MSG_host_self()->cname()); jobject jhost = Java_org_simgrid_msg_Host_getByName(env, nullptr, jhostName); //creates the process jobject jprocess = env->NewObject(class_Process, constructor_Process, jhost, jname, args); @@ -319,23 +323,20 @@ static int java_main(int argc, char *argv[]) } namespace simgrid { -namespace java { +namespace kernel { +namespace context { /** Run the Java org.simgrid.msg.Process */ void java_main_jprocess(jobject jprocess) { JNIEnv *env = get_current_thread_env(); - simgrid::java::JavaContext* context = static_cast(SIMIX_context_self()); + simgrid::kernel::context::JavaContext* context = static_cast(SIMIX_context_self()); context->jprocess = jprocess; - smx_process_t process = SIMIX_process_self(); + smx_actor_t process = SIMIX_process_self(); jprocess_bind(context->jprocess, process, env); // Adrien, ugly path, just to bypass creation of context at low levels (i.e such as for the VM migration for instance) - if (context->jprocess == nullptr) - return; - else + if (context->jprocess != nullptr) run_jprocess(env, context->jprocess); } - -} -} +}}}