4 * Copyright 2006,2007 Arnaud Legrand, Martin Quinson, Malek Cherier
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the license (GNU LGPL) which comes with this package.
11 #ifndef XBT_JCONTEXT_H
12 #define XBT_JCONTEXT_H
15 #include "xbt/sysdep.h"
17 #include "xbt/dynar.h" /* void_f_pvoid_t */
18 #include "portable.h" /* loads context system definitions */
19 #include "xbt/context.h"
21 #include "xbt/xbt_os_thread.h"
27 * This function gets the context of a java process instance.
29 * @param index The id (index in the table) of the java process object.
31 * @return The context of the java process object.
33 xbt_context_t xbt_context_get_by_id(jlong index);
36 * This function appends a context in the table of contexts of the simulation.
38 * @param context The context to append.
40 * @return Returns 0 if successful the function returns 0, and -1 otherwise.
42 int xbt_context_append(xbt_context_t context);
45 * This function is called by the simulator to terminate a java process instance.
47 * @param context The context of the java process to terminate.
48 * @param value not used.
50 void __context_exit(xbt_context_t context ,int value);
53 * This function is called by the java process to indicate it's done
55 * @param context The context of the process concerning by the ending.
56 * @parma value not used.
57 * @param env The jni interface pointer of the process.
59 void jcontext_exit(xbt_context_t context ,int value,JNIEnv* env);
61 /** Returns the condition used to synchronise the creation of a java process. */
62 xbt_os_cond_t xbt_creation_cond_get(void);
64 /** Returns the mutex used to synchronise the creation of a java process */
65 xbt_os_mutex_t xbt_creation_mutex_get(void);
69 #endif /* !_XBT_CONTEXT_PRIVATE_H */