* under the terms of the license (GNU LGPL) which comes with this package. */
#include <msg/msg.h>
-#include <simix/context.h>
+#include <simgrid/simix.h>
#include <surf/surfxml_parse.h>
#include "smx_context_java.h"
JNIEXPORT void JNICALL
Java_org_simgrid_msg_MsgNative_processCreate(JNIEnv * env, jclass cls,
jobject jprocess_arg,
- jobject jhost)
+ jobject jhostname)
{
jobject jprocess; /* the global reference to the java process instance */
jstring jname; /* the name of the java process instance */
const char *name; /* the C name of the process */
+ const char *hostname;
m_process_t process; /* the native process to create */
m_host_t host; /* Where that process lives */
- XBT_DEBUG("Java_org_simgrid_msg_MsgNative_processCreate(env=%p,cls=%p,jproc=%p,jhost=%p)",
- env, cls, jprocess_arg, jhost);
+ hostname = (*env)->GetStringUTFChars(env, jhostname, 0);
+
+ XBT_DEBUG("Java_org_simgrid_msg_MsgNative_processCreate(env=%p,cls=%p,jproc=%p,host=%s)",
+ env, cls, jprocess_arg, hostname);
/* get the name of the java process */
}
/* bind/retrieve the msg host */
- host = jhost_get_native(env, jhost);
+ host = MSG_get_host_by_name(hostname);
if (!(host)) { /* not binded */
- jxbt_throw_notbound(env, "host", jhost);
+ jxbt_throw_host_not_found(env, hostname);
return;
}
(xbt_main_func_t) jprocess,
/*data*/ NULL,
host,
+ /* kill_time */-1,
/*argc, argv, properties*/
0,NULL,NULL);
/* release our reference to the process name (variable name becomes invalid) */
//FIXME : This line should be uncommented but with mac it doesn't work. BIG WARNING
//(*env)->ReleaseStringUTFChars(env, jname, name);
+ (*env)->ReleaseStringUTFChars(env, jhostname, hostname);
/* bind the java process instance to the native process */
jprocess_bind(jprocess, process, env);
XBT_DEBUG("Looking for host '%s'",name);
/* get the host by name (the hosts are created during the grid resolution) */
host = MSG_get_host_by_name(name);
- XBT_DEBUG("MSG gave %p as native host (simdata=%p)", host,host? host->simdata:NULL);
+ XBT_DEBUG("MSG gave %p as native host (smx_host=%p)", host,host? host->smx_host:NULL);
if (!host) { /* invalid name */
jxbt_throw_host_not_found(env, name);
/* Cleanup java hosts */
hosts = MSG_hosts_as_dynar();
for (index = 0; index < xbt_dynar_length(hosts) - 1; index++) {
- jhost = (jobject) xbt_dynar_get_as(hosts,index,m_host_t)->data;
+ jhost = (jobject) MSG_host_get_data(xbt_dynar_get_as(hosts,index,m_host_t));
if (jhost)
jhost_unref(env, jhost);