Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Move functions from MsgNative to Host, and from jmsg to jmsg_host
[simgrid.git] / src / jmsg.c
index ac07bfb..95b89eb 100644 (file)
@@ -345,136 +345,6 @@ Java_org_simgrid_msg_MsgNative_processWaitFor(JNIEnv * env, jclass cls,
  * The MSG host connected functions implementation.                                    *
  ***************************************************************************************/
 
-JNIEXPORT jobject JNICALL
-Java_org_simgrid_msg_MsgNative_hostGetByName(JNIEnv * env, jclass cls,
-                                         jstring jname)
-{
-  m_host_t host;                /* native host                                          */
-  jobject jhost;                /* global reference to the java host instance returned  */
-
-  /* get the C string from the java string */
-  const char *name = (*env)->GetStringUTFChars(env, jname, 0);
-  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", host);
-
-  if (!host) {                  /* invalid name */
-    jxbt_throw_host_not_found(env, name);
-    (*env)->ReleaseStringUTFChars(env, jname, name);
-    return NULL;
-  }
-  (*env)->ReleaseStringUTFChars(env, jname, name);
-
-  if (!MSG_host_get_data(host)) {       /* native host not associated yet with java host */
-
-    /* Instantiate a new java host */
-    jhost = jhost_new_instance(env);
-
-    if (!jhost) {
-      jxbt_throw_jni(env, "java host instantiation failed");
-      return NULL;
-    }
-
-    /* get a global reference to the newly created host */
-    jhost = jhost_ref(env, jhost);
-
-    if (!jhost) {
-      jxbt_throw_jni(env, "new global ref allocation failed");
-      return NULL;
-    }
-
-    /* bind the java host and the native host */
-    jhost_bind(jhost, host, env);
-
-    /* the native host data field is set with the global reference to the 
-     * java host returned by this function 
-     */
-    MSG_host_set_data(host, (void *) jhost);
-  }
-
-  /* return the global reference to the java host instance */
-  return (jobject) MSG_host_get_data(host);
-}
-
-JNIEXPORT jstring JNICALL
-Java_org_simgrid_msg_MsgNative_hostGetName(JNIEnv * env, jclass cls,
-                                       jobject jhost)
-{
-  m_host_t host = jhost_get_native(env, jhost);
-  const char* name;
-
-  if (!host) {
-    jxbt_throw_notbound(env, "host", jhost);
-    return NULL;
-  }
-
-  name = MSG_host_get_name(host);
-  if (!name)
-         xbt_die("This host has no name...");
-
-  return (*env)->NewStringUTF(env, name);
-}
-
-JNIEXPORT jint JNICALL
-Java_org_simgrid_msg_MsgNative_hostGetNumber(JNIEnv * env, jclass cls)
-{
-  xbt_dynar_t hosts =  MSG_hosts_as_dynar();
-  int nb_host = xbt_dynar_length(hosts);
-  xbt_dynar_free(&hosts);
-  return (jint) nb_host;
-}
-
-JNIEXPORT jobject JNICALL
-Java_org_simgrid_msg_MsgNative_hostSelf(JNIEnv * env, jclass cls)
-{
-  jobject jhost;
-
-  m_host_t host = MSG_host_self();
-
-  if (!MSG_host_get_data(host)) {
-    /* the native host not yet associated with the java host instance */
-
-    /* instanciate a new java host instance */
-    jhost = jhost_new_instance(env);
-
-    if (!jhost) {
-      jxbt_throw_jni(env, "java host instantiation failed");
-      return NULL;
-    }
-
-    /* get a global reference to the newly created host */
-    jhost = jhost_ref(env, jhost);
-
-    if (!jhost) {
-      jxbt_throw_jni(env, "global ref allocation failed");
-      return NULL;
-    }
-
-    /* Bind & store it */
-    jhost_bind(jhost, host, env);
-    MSG_host_set_data(host, (void *) jhost);
-  } else {
-    jhost = (jobject) MSG_host_get_data(host);
-  }
-
-  return jhost;
-}
-
-JNIEXPORT jdouble JNICALL
-Java_org_simgrid_msg_MsgNative_hostGetSpeed(JNIEnv * env, jclass cls,
-                                        jobject jhost)
-{
-  m_host_t host = jhost_get_native(env, jhost);
-
-  if (!host) {
-    jxbt_throw_notbound(env, "host", jhost);
-    return -1;
-  }
-
-  return (jdouble) MSG_get_host_speed(host);
-}
-
 JNIEXPORT jint JNICALL
 Java_org_simgrid_msg_MsgNative_hostGetLoad(JNIEnv * env, jclass cls,
                                        jobject jhost)
@@ -490,123 +360,6 @@ Java_org_simgrid_msg_MsgNative_hostGetLoad(JNIEnv * env, jclass cls,
 }
 
 
-JNIEXPORT jboolean JNICALL
-Java_org_simgrid_msg_MsgNative_hostIsAvail(JNIEnv * env, jclass cls,
-                                       jobject jhost)
-{
-  m_host_t host = jhost_get_native(env, jhost);
-
-  if (!host) {
-    jxbt_throw_notbound(env, "host", jhost);
-    return 0;
-  }
-
-  return (jboolean) MSG_host_is_avail(host);
-}
-
-
-/***************************************************************************************
- * The MSG task connected functions implementation.                                    *
- ***************************************************************************************/
-
-JNIEXPORT jobject JNICALL
-Java_org_simgrid_msg_MsgNative_taskGetSource(JNIEnv * env, jclass cls,
-                                         jobject jtask)
-{
-  m_host_t host;
-  m_task_t task = jtask_to_native_task(jtask, env);
-
-  if (!task) {
-    jxbt_throw_notbound(env, "task", jtask);
-    return NULL;
-  }
-
-  host = MSG_task_get_source(task);
-
-  if (!MSG_host_get_data(host)) {
-    jxbt_throw_jni(env, "MSG_task_get_source() failed");
-    return NULL;
-  }
-
-  return (jobject) MSG_host_get_data(host);
-}
-
-JNIEXPORT void JNICALL
-Java_org_simgrid_msg_MsgNative_taskCancel(JNIEnv * env, jclass cls,
-                                      jobject jtask)
-{
-  m_task_t ptask = jtask_to_native_task(jtask, env);
-
-  if (!ptask) {
-    jxbt_throw_notbound(env, "task", jtask);
-    return;
-  }
-
-  MSG_error_t rv = MSG_task_cancel(ptask);
-
-  jxbt_check_res("MSG_task_cancel()", rv, MSG_OK,
-                 bprintf("unexpected error , please report this bug"));
-}
-
-JNIEXPORT jdouble JNICALL
-Java_org_simgrid_msg_MsgNative_taskGetComputeDuration(JNIEnv * env, jclass cls,
-                                                  jobject jtask)
-{
-  m_task_t ptask = jtask_to_native_task(jtask, env);
-
-  if (!ptask) {
-    jxbt_throw_notbound(env, "task", jtask);
-    return -1;
-  }
-  return (jdouble) MSG_task_get_compute_duration(ptask);
-}
-
-JNIEXPORT jdouble JNICALL
-Java_org_simgrid_msg_MsgNative_taskGetRemainingDuration(JNIEnv * env,
-                                                    jclass cls,
-                                                    jobject jtask)
-{
-  m_task_t ptask = jtask_to_native_task(jtask, env);
-
-  if (!ptask) {
-    jxbt_throw_notbound(env, "task", jtask);
-    return -1;
-  }
-  return (jdouble) MSG_task_get_remaining_computation(ptask);
-}
-
-JNIEXPORT void JNICALL
-Java_org_simgrid_msg_MsgNative_taskSetPriority(JNIEnv * env, jclass cls,
-                                           jobject jtask, jdouble priority)
-{
-  m_task_t task = jtask_to_native_task(jtask, env);
-
-  if (!task) {
-    jxbt_throw_notbound(env, "task", jtask);
-    return;
-  }
-  MSG_task_set_priority(task, (double) priority);
-}
-
-JNIEXPORT void JNICALL
-Java_org_simgrid_msg_MsgNative_taskExecute(JNIEnv * env, jclass cls,
-                                       jobject jtask)
-{
-  m_task_t task = jtask_to_native_task(jtask, env);
-
-  if (!task) {
-    jxbt_throw_notbound(env, "task", jtask);
-    return;
-  }
-
-  MSG_error_t rv = MSG_task_execute(task);
-
-  jxbt_check_res("MSG_task_execute()", rv,
-                 MSG_HOST_FAILURE | MSG_TASK_CANCELED,
-                 bprintf("while executing task %s",
-                         MSG_task_get_name(task)));
-}
-
 /***************************************************************************************
  * Unsortable functions                                                        *
  ***************************************************************************************/
@@ -769,7 +522,7 @@ Java_org_simgrid_msg_MsgNative_allHosts(JNIEnv * env, jclass cls_arg)
       jname = (*env)->NewStringUTF(env, MSG_host_get_name(host));
 
       jhost =
-          Java_org_simgrid_msg_MsgNative_hostGetByName(env, cls_arg, jname);
+               Java_org_simgrid_msg_Host_getByName(env, cls_arg, jname);
       /* FIXME: leak of jname ? */
     }
 
@@ -779,188 +532,6 @@ Java_org_simgrid_msg_MsgNative_allHosts(JNIEnv * env, jclass cls_arg)
   return jtable;
 }
 
-JNIEXPORT void JNICALL
-Java_org_simgrid_msg_MsgNative_taskSend(JNIEnv * env, jclass cls,
-                                    jstring jalias, jobject jtask,
-                                    jdouble jtimeout)
-{
-
-  MSG_error_t rv;
-  const char *alias = (*env)->GetStringUTFChars(env, jalias, 0);
-
-  m_task_t task = jtask_to_native_task(jtask, env);
-
-
-  if (!task) {
-    (*env)->ReleaseStringUTFChars(env, jalias, alias);
-    jxbt_throw_notbound(env, "task", jtask);
-    return;
-  }
-
-  /* Pass a global ref to the Jtask into the Ctask so that the receiver can use it */
-  MSG_task_set_data(task, (void *) (*env)->NewGlobalRef(env, jtask));
-  rv = MSG_task_send_with_timeout(task, alias, (double) jtimeout);
-
-  (*env)->ReleaseStringUTFChars(env, jalias, alias);
-
-  jxbt_check_res("MSG_task_send_with_timeout()", rv,
-                 MSG_HOST_FAILURE | MSG_TRANSFER_FAILURE | MSG_TIMEOUT,
-                 bprintf("while sending task %s to mailbox %s",
-                         MSG_task_get_name(task), alias));
-}
-
-static void msg_task_cancel_on_failed_dsend(void*t) {
-       m_task_t task = t;
-       JNIEnv *env =get_current_thread_env();
-       jobject jtask_global = MSG_task_get_data(task);
-
-       /* Destroy the global ref so that the JVM can free the stuff */
-       (*env)->DeleteGlobalRef(env, jtask_global);
-       MSG_task_set_data(task, NULL);
-       MSG_task_destroy(task);
-}
-
-
-JNIEXPORT void JNICALL
-Java_org_simgrid_msg_MsgNative_taskSendBounded(JNIEnv * env, jclass cls,
-                                           jstring jalias, jobject jtask,
-                                           jdouble jmaxRate)
-{
-  m_task_t task = jtask_to_native_task(jtask, env);
-  MSG_error_t rv;
-  const char *alias;
-
-  if (!task) {
-    jxbt_throw_notbound(env, "task", jtask);
-    return;
-  }
-
-  alias = (*env)->GetStringUTFChars(env, jalias, 0);
-
-  /* Pass a global ref to the Jtask into the Ctask so that the receiver can use it */
-  MSG_task_set_data(task, (void *) (*env)->NewGlobalRef(env, jtask));
-  rv = MSG_task_send_bounded(task, alias, (double) jmaxRate);
-
-  (*env)->ReleaseStringUTFChars(env, jalias, alias);
-
-  jxbt_check_res("MSG_task_send_bounded()", rv,
-                 MSG_HOST_FAILURE | MSG_TRANSFER_FAILURE | MSG_TIMEOUT,
-                 bprintf
-                 ("while sending task %s to mailbox %s with max rate %f",
-                  MSG_task_get_name(task), alias, (double) jmaxRate));
-
-}
-
-JNIEXPORT jobject JNICALL
-Java_org_simgrid_msg_MsgNative_taskReceive(JNIEnv * env, jclass cls,
-                                       jstring jalias, jdouble jtimeout,
-                                       jobject jhost)
-{
-  MSG_error_t rv;
-  m_task_t task = NULL;
-  m_host_t host = NULL;
-  jobject jtask_global, jtask_local;
-  const char *alias;
-
-  if (jhost) {
-    host = jhost_get_native(env, jhost);
-
-    if (!host) {
-      jxbt_throw_notbound(env, "host", jhost);
-      return NULL;
-    }
-  }
-
-  alias = (*env)->GetStringUTFChars(env, jalias, 0);
-
-  rv = MSG_task_receive_ext(&task, alias, (double) jtimeout, host);
-  if (rv != MSG_OK) {
-       switch (rv) {
-               case MSG_TIMEOUT:
-                       jxbt_throw_time_out_failure(env,NULL);
-               break;
-               case MSG_TRANSFER_FAILURE:
-                       jxbt_throw_transfer_failure(env,NULL);
-               break;
-               case MSG_HOST_FAILURE:
-                       jxbt_throw_host_failure(env,NULL);
-               break;
-               default:
-                       jxbt_throw_native(env,bprintf("receive failed"));
-       }
-       return NULL;
-  }
-  jtask_global = MSG_task_get_data(task);
-
-  /* Convert the global ref into a local ref so that the JVM can free the stuff */
-  jtask_local = (*env)->NewLocalRef(env, jtask_global);
-  (*env)->DeleteGlobalRef(env, jtask_global);
-  MSG_task_set_data(task, NULL);
-
-  (*env)->ReleaseStringUTFChars(env, jalias, alias);
-
-  jxbt_check_res("MSG_task_receive_ext()", rv,
-                 MSG_HOST_FAILURE | MSG_TRANSFER_FAILURE | MSG_TIMEOUT,
-                 bprintf("while receiving from mailbox %s", alias));
-
-  return (jobject) jtask_local;
-}
-
-JNIEXPORT jboolean JNICALL
-Java_org_simgrid_msg_MsgNative_taskListen(JNIEnv * env, jclass cls,
-                                      jstring jalias)
-{
-
-  const char *alias;
-  int rv;
-
-  alias = (*env)->GetStringUTFChars(env, jalias, 0);
-
-  rv = MSG_task_listen(alias);
-
-  (*env)->ReleaseStringUTFChars(env, jalias, alias);
-
-  return (jboolean) rv;
-}
-
-JNIEXPORT jint JNICALL
-Java_org_simgrid_msg_MsgNative_taskListenFromHost(JNIEnv * env, jclass cls,
-                                              jstring jalias,
-                                              jobject jhost)
-{
-  int rv;
-  const char *alias;
-
-  m_host_t host = jhost_get_native(env, jhost);
-
-  if (!host) {
-    jxbt_throw_notbound(env, "host", jhost);
-    return -1;
-  }
-  alias = (*env)->GetStringUTFChars(env, jalias, 0);
-
-  rv = MSG_task_listen_from_host(alias, host);
-
-  (*env)->ReleaseStringUTFChars(env, jalias, alias);
-
-  return (jint) rv;
-}
-
-JNIEXPORT jint JNICALL
-Java_org_simgrid_msg_MsgNative_taskListenFrom(JNIEnv * env, jclass cls,
-                                          jstring jalias)
-{
-
-  int rv;
-  const char *alias = (*env)->GetStringUTFChars(env, jalias, 0);
-
-  rv = MSG_task_listen_from(alias);
-
-  (*env)->ReleaseStringUTFChars(env, jalias, alias);
-
-  return (jint) rv;
-}
-
 JNIEXPORT void JNICALL
 Java_org_simgrid_msg_Msg_deployApplication(JNIEnv * env, jclass cls,
                                        jstring jdeploymentFile)