1 /* Functions related to the java host instances. */
3 /* Copyright (c) 2007, 2009, 2010. The SimGrid Team.
4 * All rights 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. */
11 #include "jmsg_host.h"
12 #include "jxbt_utilities.h"
14 jobject jhost_new_instance(JNIEnv * env)
17 jclass cls = jxbt_get_class(env, "org/simgrid/msg/Host");
18 jmethodID constructor = jxbt_get_jmethod(env, cls, "<init>", "()V");
23 return (*env)->NewObject(env, cls, constructor);
26 jobject jhost_ref(JNIEnv * env, jobject jhost)
28 return (*env)->NewGlobalRef(env, jhost);
31 void jhost_unref(JNIEnv * env, jobject jhost)
33 (*env)->DeleteGlobalRef(env, jhost);
36 void jhost_bind(jobject jhost, m_host_t host, JNIEnv * env)
38 jfieldID id = jxbt_get_sfield(env, "org/simgrid/msg/Host", "bind", "J");
43 (*env)->SetLongField(env, jhost, id, (jlong) (long) (host));
46 m_host_t jhost_get_native(JNIEnv * env, jobject jhost)
48 jfieldID id = jxbt_get_sfield(env, "org/simgrid/msg/Host", "bind", "J");
53 return (m_host_t) (long) (*env)->GetLongField(env, jhost, id);
56 const char *jhost_get_name(jobject jhost, JNIEnv * env)
58 m_host_t host = jhost_get_native(env, jhost);
59 return (const char *) host->name;
62 void jhost_set_name(jobject jhost, jstring jname, JNIEnv * env)
65 m_host_t host = jhost_get_native(env, jhost);
67 name = (*env)->GetStringUTFChars(env, jname, 0);
72 host->name = xbt_strdup(name);
73 (*env)->ReleaseStringUTFChars(env, jname, name);
76 jboolean jhost_is_valid(jobject jhost, JNIEnv * env)
78 jfieldID id = jxbt_get_sfield(env, "org/simgrid/msg/Host", "bind", "J");
83 if ((*env)->GetLongField(env, jhost, id)) {