#include <msg/msg.h>
#include <simgrid/simix.h>
+//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(m_process_t process);
/**
*/
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.
*
*/
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
*/
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
*/
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
*/
JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_kill
- (JNIEnv *, jclass, jobject);
+ (JNIEnv *, jobject);
/*
* Class org_simgrid_msg_Process