#include "jmsg_process.h"
+#include "jmsg_as.h"
+
#include "jmsg_host.h"
#include "jmsg_task.h"
#include "jxbt_utilities.h"
jxbt_throw_host_failure(env,NULL);
break;
default:
- jxbt_throw_native(env,bprintf("communication failed"));
+ jxbt_throw_native(env,xbt_strdup("communication failed"));
}
}
rv = MSG_main();
XBT_DEBUG("Done running MSG_MAIN");
jxbt_check_res("MSG_main()", rv, MSG_OK,
- bprintf
- ("unexpected error : MSG_main() failed .. please report this bug "));
+ xbt_strdup("unexpected error : MSG_main() failed .. please report this bug "));
XBT_INFO("MSG_main finished; Cleaning up the simulation...");
/* Cleanup java hosts */
(*env)->ReleaseStringUTFChars(env, jplatformFile, platformFile);
}
+
+JNIEXPORT jobject JNICALL
+Java_org_simgrid_msg_Msg_environmentGetRoutingRoot(JNIEnv * env, jclass cls)
+{
+ msg_as_t as = MSG_environment_get_routing_root();
+ jobject jas = jas_new_instance(env);
+ if (!jas) {
+ jxbt_throw_jni(env, "java As instantiation failed");
+ return NULL;
+ }
+ jas = jas_ref(env, jas);
+ if (!jas) {
+ jxbt_throw_jni(env, "new global ref allocation failed");
+ return NULL;
+ }
+ jas_bind(jas, as, env);
+
+ return (jobject) jas;
+}
+
JNIEXPORT void JNICALL
Java_org_simgrid_msg_Msg_debug(JNIEnv * env, jclass cls, jstring js)
{
jclass class_Process = (*env)->FindClass(env, argv[0]);
xbt_str_subst(argv[0],'/','.',0);
//Retrieve the methodID for the constructor
- xbt_assert((class_Process != NULL), "Class not found.");
+ xbt_assert((class_Process != NULL), "Class not found (%s).", argv[0]);
jmethodID constructor_Process = (*env)->GetMethodID(env, class_Process, "<init>", "(Lorg/simgrid/msg/Host;Ljava/lang/String;[Ljava/lang/String;)V");
xbt_assert((constructor_Process != NULL), "Constructor not found for class %s. Is there a (Host, String ,String[]) constructor in your class ?", argv[0]);