#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;
+
+
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
+ * Signature ();
+ */
+JNIEXPORT void JNICALL
+Java_org_simgrid_msg_Process_nativeInit(JNIEnv *env, jclass cls);
+
+/*
+ * Class org_simgrid_msg_Process
+ * Method create
+ * Signature (Lsimgrid/msg/Host;)V
+ */
+JNIEXPORT void JNICALL
+Java_org_simgrid_msg_Process_create(JNIEnv * env,
+ jobject jprocess_arg,
+ jobject jhostname);
+
+/*
+ * Class org_simgrid_msg_Process
+ * Method killAll
+ * Signature (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_simgrid_msg_Process_killAll
+ (JNIEnv *, jclass, jint);
+
+/*
+ * Class org_simgrid_msg_Process
+ * Method fromPID
+ * Signature (I)Lsimgrid/msg/Process;
+ */
+JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Process_fromPID
+ (JNIEnv *, jclass, jint);
+
+/*
+ * Class org_simgrid_msg_Process
+ * Method currentProcess
+ * Signature ()Lsimgrid/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
+ */
+JNIEXPORT void JNICALL
+Java_org_simgrid_msg_Process_pause(JNIEnv * env,
+ jobject jprocess);
+/*
+ * Class org_simgrid_msg_Process
+ * Method restart
+ * Signature (Lsimgrid/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
+ */
+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
+ * Method waitFor
+ * Signature (D)V
+ */
+JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_waitFor
+ (JNIEnv *, jobject, jdouble);
+/*
+ * Class org_simgrid_msg_Process
+ * Method kill
+ * Signature (Lsimgrid/msg/Process;)V
+ */
+JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_kill
+ (JNIEnv *, jobject);
+
+/*
+ * Class org_simgrid_msg_Process
+ * Method migrate
+ * Signature (Lsimgrid/msg/Host;)V
+ */
+JNIEXPORT void JNICALL Java_org_simgrid_msg_Process_migrate
+ (JNIEnv *, jobject, jobject);
#endif /* !MSG_JPROCESS_H */