/* Functions related to the java process instances. */
-/* Copyright (c) 2007, 2009, 2010. The SimGrid Team.
+/* Copyright (c) 2007-2012. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
#include <msg/msg.h>
#include <simgrid/simix.h>
-jobject native_to_java_process(m_process_t process);
+//Cached java fields
+jfieldID jprocess_field_Process_bind;
+jfieldID jprocess_field_Process_host;
+jfieldID jprocess_field_Process_killTime;
+jfieldID jprocess_field_Process_id;
+jfieldID jprocess_field_Process_name;
+jfieldID jprocess_field_Process_pid;
+jfieldID jprocess_field_Process_ppid;
+
+JNIEXPORT void JNICALL
+Java_org_simgrid_msg_Process_exit(JNIEnv *env, jobject);
+
+
+jobject native_to_java_process(msg_process_t process);
/**
* This function returns a global reference to the java process instance
*/
void jprocess_delete_global_ref(jobject jprocess, JNIEnv * env);
-/**
- *
- * This function tests if the specified java process instance is alive.
- * A java process object is alive if it has been started and has not yet
- * terminated.
- *
- * @param jprocess The java process to test.
- * @param env The env of the current thread
- *
- * @exception If the class Process is not found the function throws
- * the ClassNotFoundException. If the methos isAlive() of
- * this class is not found the function throws the exception
- * NotSuchMethodException.
- *
- * @return If the java process is alive the function returns
- * true. Otherwise the function returns false.
- */
-jboolean jprocess_is_alive(jobject jprocess, JNIEnv * env);
/**
* This function waits for a java process to terminate.
*
*/
void jprocess_join(jobject jprocess, JNIEnv * env);
-
-/**
- * This function starts the specified java process.
- *
- * @param jprocess The java process to start.
- * @param env The env of the current thread
- *
- * @exception If the class Process is not found the function throws
- * the ClassNotFoundException. If the methos start() of
- * this class is not found the function throws the exception
- * NotSuchMethodException.
- */
-void jprocess_start(jobject jprocess, JNIEnv * env);
-
-/**
- * This function forces the java process to stop.
- *
- * @param jprocess The java process to stop.
- * @param env The env of the current thread
- *
- * @exception If the class Process is not found the function throws
- * the ClassNotFoundException. If the methos stop() of
- * this class is not found the function throws the exception
- * NotSuchMethodException.
- */
-void jprocess_exit(jobject jprocess, JNIEnv * env);
-
/**
* This function associated a native process to a java process instance.
*
* this class is not found the function throws the exception
* NotSuchFieldException.
*/
-void jprocess_bind(jobject jprocess, m_process_t process, JNIEnv * env);
+void jprocess_bind(jobject jprocess, msg_process_t process, JNIEnv * env);
/**
* This function returns a native process from a java process instance.
* this class is not found the function throws the exception
* NotSuchFieldException.
*/
-m_process_t jprocess_to_native_process(jobject jprocess, JNIEnv * env);
+msg_process_t jprocess_to_native_process(jobject jprocess, JNIEnv * env);
/**
* This function gets the id of the specified java process.
*/
jstring jprocess_get_name(jobject jprocess, JNIEnv * env);
-/**
- * This function yields the specified java process.
- *
- * @param jprocess The java process to yield.
- * @param env The env of the current thread.
- *
- * @exception If the class Process is not found the function throws
- * the ClassNotFoundException. If the method switchProcess of
- * this class is not found the function throws the exception
- * NotSuchMethodException.
- */
-void jprocess_yield(jobject jprocess, JNIEnv * env);
-
-/**
- * This function locks the mutex of the specified java process.
- *
- * @param jprocess The java process of the mutex to lock.
- * @param env The env of the current thread.
- *
- * @exception If the class Process is not found the function throws
- * the ClassNotFoundException. If the method lockMutex of
- * this class is not found the function throws the exception
- * NotSuchMethodException.
- */
-void jprocess_lock_mutex(jobject jprocess, JNIEnv * env);
-
-/**
- * This function unlocks the mutex of the specified java process.
- *
- * @param jprocess The java process of the mutex to unlock.
- * @param env The env of the current thread.
- *
- * @exception If the class Process is not found the function throws
- * the ClassNotFoundException. If the method unlockMutex of
- * this class is not found the function throws the exception
- * NotSuchMethodException.
- */
-void jprocess_unlock_mutex(jobject jprocess, JNIEnv * env);
-
-/**
- * This function signals the condition of the mutex of the specified java process.
- *
- * @param jprocess The java process of the condtion to signal.
- * @param env The env of the current thread.
- *
- * @exception If the class Process is not found the function throws
- * the ClassNotFoundException. If the method signalCond of
- * this class is not found the function throws the exception
- * NotSuchMethodException.
- */
-void jprocess_signal_cond(jobject jprocess, JNIEnv * env);
-
-/**
- * This function waits the condition of the mutex of the specified java process.
- *
- * @param jprocess The java process of the condtion to wait for.
- * @param env The env of the current thread.
- *
- * @exception If the class Process is not found the function throws
- * the ClassNotFoundException. If the method waitCond of
- * this class is not found the function throws the exception
- * NotSuchMethodException.
- */
-void jprocess_wait_cond(jobject jprocess, JNIEnv * env);
-
-void jprocess_schedule(smx_context_t context);
-
-void jprocess_unschedule(smx_context_t context);
/*
* Class org_simgrid_msg_Process
* Method nativeInit
/*
* Class org_simgrid_msg_Process
* Method create
- * Signature (Lsimgrid/msg/Host;)V
+ * Signature (Lorg/simgrid/msg/Host;)V
*/
JNIEXPORT void JNICALL
Java_org_simgrid_msg_Process_create(JNIEnv * env,
- jobject jprocess, jobject jhost);
+ jobject jprocess_arg,
+ jobject jhostname);
/*
* Class org_simgrid_msg_Process
/*
* Class org_simgrid_msg_Process
* Method fromPID
- * Signature (I)Lsimgrid/msg/Process;
+ * Signature (I)Lorg/simgrid/msg/Process;
*/
JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_fromPID
(JNIEnv *, jclass, jint);
-
+/*
+ * Class org_simgrid_msg_Process
+ * Method waitFor
+ * Signature (D)V
+ */
+JNIEXPORT jobject JNICALL
+Java_org_simgrid_msg_Process_getProperty(JNIEnv *env, jobject jprocess, jobject jname);
/*
* Class org_simgrid_msg_Process
* Method currentProcess
- * Signature ()Lsimgrid/msg/Process;
+ * Signature ()Lorg/simgrid/msg/Process;
*/
JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_currentProcess
(JNIEnv *, jclass);
/*
* Class org_simgrid_msg_Process
- * Method pause
- * Signature (Lsimgrid/msg/Process;)V
+ * Method suspend
+ * Signature (Lorg/simgrid/msg/Process;)V
*/
JNIEXPORT void JNICALL
-Java_org_simgrid_msg_Process_pause(JNIEnv * env,
+Java_org_simgrid_msg_Process_suspend(JNIEnv * env,
jobject jprocess);
/*
* Class org_simgrid_msg_Process
- * Method restart
- * Signature (Lsimgrid/msg/Process;)V
+ * Method resume
+ * Signature (Lorg/simgrid/msg/Process;)V
+ */
+JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_resume
+ (JNIEnv *, jobject);
+/*
+ * Class org_simgrid_msg_Process
+ * Method setAutoRestart
+ * Signature (Lorg/simgrid/msg/Process;Z)V
+ */
+JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_setAutoRestart
+ (JNIEnv *, jobject, jboolean);
+/*
+ * Class org_simgrid_msg_Process
+ * Method restart
+ * Signature (Lorg/simgrid/msg/Process;)V
*/
JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_restart
(JNIEnv *, jobject);
+
/*
* Class org_simgrid_msg_Process
* Method isSuspended
- * Signature (Lsimgrid/msg/Process;)Z
+ * Signature (Lorg/simgrid/msg/Process;)Z
*/
JNIEXPORT jboolean JNICALL Java_org_simgrid_msg_Process_isSuspended
(JNIEnv *, jobject);
+/*
+ * Class org_simgrid_msg_Process
+ * Method sleep
+ * Signature (DI)V
+ */
+JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_sleep
+ (JNIEnv *, jclass, jlong, jint);
/*
* Class org_simgrid_msg_Process
*/
JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_waitFor
(JNIEnv *, jobject, jdouble);
-/**
- * Class org_simgrid_msg_Process
- * Method exit
- * Signature ()V
- */
-JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_exit
- (JNIEnv *, jobject);
/*
* Class org_simgrid_msg_Process
* Method kill
- * Signature (Lsimgrid/msg/Process;)V
+ * Signature (Lorg/simgrid/msg/Process;)V
*/
JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_kill
- (JNIEnv *, jclass, jobject);
+ (JNIEnv *, jobject);
/*
* Class org_simgrid_msg_Process
* Method migrate
- * Signature (Lsimgrid/msg/Host;)V
+ * Signature (Lorg/simgrid/msg/Host;)V
*/
JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_migrate
(JNIEnv *, jobject, jobject);
+/*
+ * Class org_simgrid_msg_Process
+ * Method setKillTime
+ * Signature (D)V
+ */
+JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_setKillTime
+ (JNIEnv *, jobject, jdouble);
#endif /* !MSG_JPROCESS_H */