X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e18a7b043d161b29d0bf3f5743cb7a570241576a..22e6546d2c6f14864cc93c4ed1470d8e8c1e2d95:/src/bindings/java/jmsg.cpp diff --git a/src/bindings/java/jmsg.cpp b/src/bindings/java/jmsg.cpp index 09d41702e3..21b56a96f4 100644 --- a/src/bindings/java/jmsg.cpp +++ b/src/bindings/java/jmsg.cpp @@ -5,7 +5,9 @@ /* 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/msg.h" #include "simgrid/plugins/energy.h" @@ -13,15 +15,15 @@ #include "simgrid/s4u/Host.hpp" -#include "src/simix/smx_private.h" +#include "src/simix/smx_private.hpp" -#include "jmsg_process.h" -#include "jmsg_as.h" +#include "jmsg.hpp" +#include "jmsg_as.hpp" #include "jmsg_host.h" +#include "jmsg_process.h" #include "jmsg_storage.h" #include "jmsg_task.h" -#include "jxbt_utilities.h" -#include "jmsg.h" +#include "jxbt_utilities.hpp" #include "JavaContext.hpp" @@ -36,7 +38,7 @@ #endif /* end of eclipse-mandated pimple */ -SG_BEGIN_DECL() +extern "C" { int JAVA_HOST_LEVEL = -1; @@ -84,10 +86,6 @@ JNIEXPORT jdouble JNICALL Java_org_simgrid_msg_Msg_getClock(JNIEnv * env, jclass return (jdouble) MSG_get_clock(); } -static void __JAVA_host_priv_free(void *host) -{ -} - JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_init(JNIEnv * env, jclass cls, jobjectArray jargs) { int argc = 0; @@ -122,7 +120,7 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_init(JNIEnv * env, jclass cls, j MSG_init(&argc, argv); - JAVA_HOST_LEVEL = simgrid::s4u::Host::extension_create(__JAVA_host_priv_free); + JAVA_HOST_LEVEL = simgrid::s4u::Host::extension_create(nullptr); for (int index = 0; index < argc - 1; index++) { env->SetObjectArrayElement(jargs, index, (jstring)env->NewStringUTF(argv[index + 1])); @@ -241,8 +239,7 @@ Java_org_simgrid_msg_Msg_deployApplication(JNIEnv * env, jclass cls, jstring jde JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_energyInit() { sg_host_energy_plugin_init(); } - -SG_END_DECL() +} // extern "C" /** Run a Java org.simgrid.msg.Process * @@ -269,9 +266,9 @@ static int java_main(int argc, char *argv[]) simgrid::kernel::context::JavaContext* context = static_cast(SIMIX_context_self()); //Change the "." in class name for "/". - xbt_str_subst(argv[0],'.','/',0); - jclass class_Process = env->FindClass(argv[0]); - xbt_str_subst(argv[0],'/','.',0); + std::string arg0 = argv[0]; + std::replace(begin(arg0), end(arg0), '.', '/'); + jclass class_Process = env->FindClass(arg0.c_str()); //Retrieve the methodID for the constructor xbt_assert((class_Process != nullptr), "Class not found (%s). The deployment file must use the fully qualified class name, including the package. The case is important.", argv[0]); jmethodID constructor_Process = env->GetMethodID(class_Process, "", "(Lorg/simgrid/msg/Host;Ljava/lang/String;[Ljava/lang/String;)V");