X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ebcb91551aa801d2353d854ffe9c1d1bf72d7db9..1fc042e8bc9c51f9267fa1936deaebe59ae01ee7:/src/bindings/java/jmsg.cpp diff --git a/src/bindings/java/jmsg.cpp b/src/bindings/java/jmsg.cpp index 11342f25b4..6119a6402f 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; @@ -154,7 +156,7 @@ JNIEXPORT void JNICALL JNICALL Java_org_simgrid_msg_Msg_run(JNIEnv * env, jclass xbt_dynar_free(&hosts); /* Cleanup java storages */ - for (auto elm : java_storage_map) + for (auto const& elm : java_storage_map) jstorage_unref(env, elm.second); } @@ -241,8 +243,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 +270,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");