4 * Copyright 2006,2007 Martin Quinson, Malek Cherier All right reserved.
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the license (GNU LGPL) which comes with this package.
9 * This contains the implementation of the functions in relation with the java
15 #include "jmsg_host.h"
16 #include "jxbt_utilities.h"
18 jobject jhost_new_instance(JNIEnv * env)
21 jclass cls = jxbt_get_class(env, "simgrid/msg/Host");
22 jmethodID constructor = jxbt_get_jmethod(env, cls, "<init>", "()V");
27 return (*env)->NewObject(env, cls, constructor);
30 jobject jhost_ref(JNIEnv * env, jobject jhost)
32 return (*env)->NewGlobalRef(env, jhost);
35 void jhost_unref(JNIEnv * env, jobject jhost)
37 (*env)->DeleteGlobalRef(env, jhost);
40 void jhost_bind(jobject jhost, m_host_t host, JNIEnv * env)
42 jfieldID id = jxbt_get_sfield(env, "simgrid/msg/Host", "bind", "J");
47 (*env)->SetLongField(env, jhost, id, (jlong) (long) (host));
50 m_host_t jhost_get_native(JNIEnv * env, jobject jhost)
52 jfieldID id = jxbt_get_sfield(env, "simgrid/msg/Host", "bind", "J");
57 return (m_host_t) (long) (*env)->GetLongField(env, jhost, id);
60 const char *jhost_get_name(jobject jhost, JNIEnv * env)
62 m_host_t host = jhost_get_native(env, jhost);
63 return (const char *) host->name;
66 void jhost_set_name(jobject jhost, jstring jname, JNIEnv * env)
69 m_host_t host = jhost_get_native(env, jhost);
71 name = (*env)->GetStringUTFChars(env, jname, 0);
76 host->name = xbt_strdup(name);
77 (*env)->ReleaseStringUTFChars(env, jname, name);
80 jboolean jhost_is_valid(jobject jhost, JNIEnv * env)
82 jfieldID id = jxbt_get_sfield(env, "simgrid/msg/Host", "bind", "J");
87 if ((*env)->GetLongField(env, jhost, id)) {