Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
more consistant identifier names around Java objects' finalization
[simgrid.git] / src / bindings / java / jmsg_task.h
1 /* Functions related to the java task instances.                            */
2
3 /* Copyright (c) 2007-2014. The SimGrid Team.
4  * All rights reserved.                                                     */
5
6 /* This program is free software; you can redistribute it and/or modify it
7  * under the terms of the license (GNU LGPL) which comes with this package. */
8
9 #ifndef MSG_JTASK_H
10 #define MSG_JTASK_H
11
12 #include <jni.h>
13 #include "simgrid/msg.h"
14
15
16 /**
17  * This function associated a native task to a java task instance.
18  *
19  * @param jtask                 The java task instance.
20  * @param task                  The native task to bind.
21  * @param env                   The environment of the current thread.
22  *
23  * @exception                   If the class Task is not found the function throws 
24  *                                              the ClassNotFoundException. If the field bind of 
25  *                                              this class is not found the function throws the exception 
26  *                                              NotSuchFieldException.  
27  */
28 void jtask_bind(jobject jtask, msg_task_t task, JNIEnv * env);
29
30 /**
31  * This function returns a native task from a java task instance.
32  *
33  * @param jtask                 The java task object from which get the native task.
34  * @param env                   The environment of the current thread.
35  *
36  * @return                              The function returns the native task associated to the
37  *                                              java task object.
38  *
39  * @exception                   If the class Task is not found the function throws 
40  *                                              the ClassNotFoundException. If the field bind of 
41  *                                              this class is not found the function throws the exception 
42  *                                              NotSuchFieldException.  
43  */
44 msg_task_t jtask_to_native_task(jobject jtask, JNIEnv * env);
45
46 /**
47  * This function tests if a java task instance is valid.
48  * A java task object is valid if it is bind to a native 
49  * task.
50  *
51  * @param jtask                 The java task to test the validity.
52  * @param env                   The environment of the current thread.
53  *
54  * @return                              If the java task is valid the function returns true.
55  *                                              Otherwise the function returns false.
56  */
57 jboolean jtask_is_valid(jobject jtask, JNIEnv * env);
58
59 /*
60  * Class                org_simgrid_msg_Task
61  * Method               nativeInit
62  * Signature    ();
63  */
64 JNIEXPORT void JNICALL
65 Java_org_simgrid_msg_Task_nativeInit(JNIEnv *env, jclass cls);
66
67 /*
68  * Class                org_simgrid_msg_Task
69  * Method               create
70  */
71 JNIEXPORT void JNICALL
72 Java_org_simgrid_msg_Task_create
73                 (JNIEnv * env, jobject jtask, jstring jname, jdouble jcomputeDuration, jdouble jmessageSize);
74 JNIEXPORT void JNICALL
75 Java_org_simgrid_msg_Task_nativeFinalize(JNIEnv * env, jobject jtask);
76 /*
77  * Class                org_simgrid_msg_Task
78  * Method               parallelCreate
79  */
80 JNIEXPORT void JNICALL
81 Java_org_simgrid_msg_Task_parallelCreate
82                 (JNIEnv *, jobject,
83      jstring, jobjectArray,
84      jdoubleArray,
85      jdoubleArray);
86 /*
87  * Class                org_simgrid_msg_Task
88  * Method               destroy
89  * Signature    (Lsimgrid/msg/Task;)V
90  */
91 /* JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_destroy */
92 /*     (JNIEnv *, jobject); */
93
94 /*
95  * Class                org_simgrid_msg_Task
96  * Method               cancel
97  * Signature    ()V
98  */
99 JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_cancel
100     (JNIEnv *, jobject);
101
102 /*
103  * Class                org_simgrid_msg_Task
104  * Method               execute
105  * Signature    ()V
106  */
107 JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_execute
108     (JNIEnv *, jobject);
109
110 /*
111  * Class                org_simgrid_msg_Task
112  * Method               setBound
113  * Signature    ()V
114  */
115 JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_setBound
116     (JNIEnv *, jobject, jdouble);
117
118 /*
119  * Class                org_simgrid_msg_Task
120  * Method               getName
121  * Signature    ()Ljava/lang/String;
122  */
123 JNIEXPORT jstring JNICALL Java_org_simgrid_msg_Task_getName
124     (JNIEnv *, jobject);
125
126 /*
127  * Class                org_simgrid_msg_Task
128  * Method               getSender
129  * Signature    ()Lsimgrid/msg/Process;
130  */
131 JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_getSender
132     (JNIEnv *, jobject);
133 /*
134  * Class                org_simgrid_msg_Task
135  * Method               getSource
136  * Signature    ()Lsimgrid/msg/Host;
137  */
138 JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_getSource
139     (JNIEnv *, jobject);
140 /*
141  * Class                org_simgrid_msg_Task
142  * Method               getFlopsAmount
143  * Signature    ()D
144  */
145 JNIEXPORT jdouble JNICALL Java_org_simgrid_msg_Task_getFlopsAmount
146     (JNIEnv *, jobject);
147
148 /**
149  * Class                org_simgrid_msg_Task
150  * Method               setName
151  * Signature    (Ljava/lang/string;)V
152  */
153 JNIEXPORT void JNICALL
154 Java_org_simgrid_msg_Task_setName(JNIEnv *env, jobject jtask, jobject jname);
155 /*
156  * Class                org_simgrid_msg_Task
157  * Method               setPriority
158  * Signature    (D)V
159  */
160 JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_setPriority
161     (JNIEnv *, jobject, jdouble);
162 /**
163  * Class                org_simgrid_msg_Task
164  * Method               setComputeDuration
165  * Signature    (D)V
166  */
167 JNIEXPORT void JNICALL
168 Java_org_simgrid_msg_Task_setFlopsAmount
169                 (JNIEnv *env, jobject jtask, jdouble computationAmount);
170                 
171                 /**
172  * Class                org_simgrid_msg_Task
173  * Method               setDataSize
174  * Signature    (D)V
175  */
176 JNIEXPORT void JNICALL
177 Java_org_simgrid_msg_Task_setBytesAmount
178                 (JNIEnv *env, jobject jtask, jdouble dataSize);
179                 
180 /**
181  * Class                org_simgrid_msg_Task
182  * Method               send
183  */
184 JNIEXPORT void JNICALL
185     Java_org_simgrid_msg_Task_send
186     (JNIEnv *, jobject, jstring, jdouble);
187
188 /**
189  * Class                org_simgrid_msg_Task
190  * Method               sendBounded
191  */
192 JNIEXPORT void JNICALL
193     Java_org_simgrid_msg_Task_sendBounded
194     (JNIEnv *, jobject, jstring, jdouble, jdouble);
195
196
197 /**
198  * Class                org_simgrid_msg_Task
199  * Method               receive
200  */
201 JNIEXPORT jobject JNICALL
202     Java_org_simgrid_msg_Task_receive
203     (JNIEnv *, jclass, jstring, jdouble, jobject);
204
205 /**
206  * Class                org_simgrid_msg_Task
207  * Method               irecv
208  * Signature    (Ljava/lang/String;)Lorg/simgrid/msg/Comm;
209  */
210 JNIEXPORT jobject JNICALL
211 Java_org_simgrid_msg_Task_irecv(JNIEnv * env, jclass cls, jstring jmailbox);
212 /**
213  * Class                org_simgrid_msg_Task
214  * Method               receiveBounded
215  */
216 JNIEXPORT jobject JNICALL
217 Java_org_simgrid_msg_Task_receiveBounded(JNIEnv * env, jclass cls,
218                                          jstring jalias, jdouble jtimeout,
219                                          jobject jhost, jdouble rate);
220 /**
221  * Class                org_simgrid_msg_Task
222  * Method               irecvBounded
223  */
224 JNIEXPORT jobject JNICALL
225 Java_org_simgrid_msg_Task_irecvBounded(JNIEnv * env, jclass cls,
226                                        jstring jmailbox, jdouble rate);
227 /**
228  * Class                org_simgrid_msg_Task
229  * Method               isend
230  * Signature    (Lorg/simgrid/msg/Task;Ljava/lang/String;)Lorg/simgrid/msg/Comm;
231  */
232 JNIEXPORT jobject JNICALL
233 Java_org_simgrid_msg_Task_isend(JNIEnv *env, jobject jtask, jstring jmailbox);
234 /**
235  * Class                org_simgrid_msg_Task
236  * Method               isendBounded
237  */
238 JNIEXPORT jobject JNICALL
239 Java_org_simgrid_msg_Task_isendBounded(JNIEnv *env, jobject jtask, jstring jmailbox, jdouble maxrate);
240
241 /**
242  * Class                org_simgrid_msg_Task
243  * Method               dsend
244  */
245 JNIEXPORT void JNICALL
246 Java_org_simgrid_msg_Task_dsend(JNIEnv * env, jobject jtask,
247                                 jstring jalias);
248
249 /**
250  * Class                org_simgrid_msg_Task
251  * Method               dsendBounded
252  */
253 JNIEXPORT void JNICALL
254 Java_org_simgrid_msg_Task_dsendBounded(JNIEnv * env, jobject jtask,
255                                 jstring jalias, jdouble maxrate);
256
257 /**
258  * Class                org_simgrid_msg_Task
259  * Method               listen
260  */
261 JNIEXPORT jboolean JNICALL
262 Java_org_simgrid_msg_Task_listen(JNIEnv *, jclass, jstring);
263 /**
264  * Class                org_simgrid_msg_Task
265  * Method               listenFromHost
266  */
267 JNIEXPORT jint JNICALL
268 Java_org_simgrid_msg_Task_listenFromHost(JNIEnv *, jclass, jstring,
269                                               jobject);
270 /**
271  * Class                org_simgrid_msg_Task
272  * Method               listenFrom
273  */
274 JNIEXPORT jint JNICALL
275 Java_org_simgrid_msg_Task_listenFrom(JNIEnv *, jclass, jstring);
276
277
278
279 #endif                          /* !MSG_JTASK_H */