Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove extern "C" from cpp files (src/bindings/).
[simgrid.git] / src / bindings / java / jtrace.cpp
1 /* Java bindings of the Trace API.                                          */
2
3 /* Copyright (c) 2012-2018. The SimGrid Team. All rights reserved.          */
4
5 /* This program is free software; you can redistribute it and/or modify it
6  * under the terms of the license (GNU LGPL) which comes with this package. */
7
8 #include "jtrace.h"
9 #include "simgrid/instr.h"
10
11 /* Shut up some errors in eclipse online compiler. I wish such a pimple wouldn't be needed */
12 #ifndef JNIEXPORT
13 #define JNIEXPORT
14 #endif
15 #ifndef JNICALL
16 #define JNICALL
17 #endif
18 /* end of eclipse-mandated pimple */
19
20 // Define a new category
21 XBT_LOG_NEW_DEFAULT_CATEGORY (jtrace, "TRACE for Java(TM)");
22
23 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostStateDeclare(JNIEnv * env, jclass cls, jstring js)
24 {
25   const char *s = env->GetStringUTFChars(js, 0);
26   TRACE_host_state_declare(s);
27   env->ReleaseStringUTFChars(js, s);
28 }
29
30 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostStateDeclareValue (JNIEnv *env, jclass cls, jstring js_state,
31                                                                            jstring js_value, jstring js_color)
32 {
33   const char *state = env->GetStringUTFChars(js_state, 0);
34   const char *value = env->GetStringUTFChars(js_value, 0);
35   const char *color = env->GetStringUTFChars(js_color, 0);
36
37   TRACE_host_state_declare_value(state, value, color);
38
39   env->ReleaseStringUTFChars(js_state, state);
40   env->ReleaseStringUTFChars(js_value, value);
41   env->ReleaseStringUTFChars(js_color, color);
42 }
43
44 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostSetState (JNIEnv *env, jclass cls, jstring js_host,
45                                                                   jstring js_state, jstring js_value)
46 {
47   const char *host = env->GetStringUTFChars(js_host, 0);
48   const char *state = env->GetStringUTFChars(js_state, 0);
49   const char *value = env->GetStringUTFChars(js_value, 0);
50
51   TRACE_host_set_state(host, state, value);
52
53   env->ReleaseStringUTFChars(js_host, host);
54   env->ReleaseStringUTFChars(js_state, state);
55   env->ReleaseStringUTFChars(js_value, value);
56 }
57
58 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostPushState (JNIEnv *env, jclass cls, jstring js_host,
59                                                                    jstring js_state, jstring js_value)
60 {
61   const char *host = env->GetStringUTFChars(js_host, 0);
62   const char *state = env->GetStringUTFChars(js_state, 0);
63   const char *value = env->GetStringUTFChars(js_value, 0);
64
65   TRACE_host_push_state(host, state, value);
66
67   env->ReleaseStringUTFChars(js_host, host);
68   env->ReleaseStringUTFChars(js_state, state);
69   env->ReleaseStringUTFChars(js_value, value);
70 }
71
72 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostPopState (JNIEnv *env, jclass cls, jstring js_host,
73                                                                   jstring js_state)
74 {
75   const char *host = env->GetStringUTFChars(js_host, 0);
76   const char *state = env->GetStringUTFChars(js_state, 0);
77
78   TRACE_host_pop_state(host, state);
79
80   env->ReleaseStringUTFChars(js_host, host);
81   env->ReleaseStringUTFChars(js_state, state);
82 }
83
84 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableDeclare (JNIEnv *env, jclass cls, jstring js_state)
85 {
86   const char *state = env->GetStringUTFChars(js_state, 0);
87   TRACE_host_variable_declare(state);
88   env->ReleaseStringUTFChars(js_state, state);
89 }
90
91 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSet (JNIEnv *env, jclass cls, jstring js_host,
92                                                                      jstring js_state, jdouble value)
93 {
94   const char *host = env->GetStringUTFChars(js_host, 0);
95   const char *state = env->GetStringUTFChars(js_state, 0);
96
97   TRACE_host_variable_set(host, state, value);
98
99   env->ReleaseStringUTFChars(js_host, host);
100   env->ReleaseStringUTFChars(js_state, state);
101 }
102
103 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSub (JNIEnv *env, jclass cls, jstring js_host,
104                                                                      jstring js_state, jdouble value)
105 {
106   const char *host = env->GetStringUTFChars(js_host, 0);
107   const char *state = env->GetStringUTFChars(js_state, 0);
108
109   TRACE_host_variable_sub(host, state, value);
110
111   env->ReleaseStringUTFChars(js_host, host);
112   env->ReleaseStringUTFChars(js_state, state);
113 }
114
115 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableDeclare (JNIEnv *env, jclass cls, jstring js_state)
116 {
117   const char *state = env->GetStringUTFChars(js_state, 0);
118
119   TRACE_vm_variable_declare(state);
120
121   env->ReleaseStringUTFChars(js_state, state);
122 }
123
124 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableSet (JNIEnv *env, jclass cls, jstring js_vm,
125                                                                    jstring js_state, jdouble value)
126 {
127   const char *vm = env->GetStringUTFChars(js_vm, 0);
128   const char *state = env->GetStringUTFChars(js_state, 0);
129
130   TRACE_vm_variable_set(vm, state, value);
131
132   env->ReleaseStringUTFChars(js_vm, vm);
133   env->ReleaseStringUTFChars(js_state, state);
134 }
135
136 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableAdd (JNIEnv *env, jclass cls, jstring js_host,
137                                                                      jstring js_state, jdouble value)
138 {
139   const char *host = env->GetStringUTFChars(js_host, 0);
140   const char *state = env->GetStringUTFChars(js_state, 0);
141
142   TRACE_host_variable_set(host, state, value);
143
144   env->ReleaseStringUTFChars(js_host, host);
145   env->ReleaseStringUTFChars(js_state, state);
146 }
147
148 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableDeclare (JNIEnv *env, jclass cls, jstring jvar) {
149   const char *variable = env->GetStringUTFChars(jvar, 0);
150   TRACE_link_variable_declare (variable);
151   env->ReleaseStringUTFChars(jvar, variable);
152 }
153 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableDeclareWithColor (JNIEnv *env, jclass cls, jstring jvar, jstring jcolor) {
154   const char *variable = env->GetStringUTFChars(jvar, 0);
155   const char *color = env->GetStringUTFChars(jcolor, 0);
156   TRACE_link_variable_declare_with_color(variable,color);
157   env->ReleaseStringUTFChars(jvar, variable);
158   env->ReleaseStringUTFChars(jcolor, color);
159 }
160 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableSet (JNIEnv *env, jclass cls, jstring jlink, jstring jvar, jdouble jvalue) {
161   const char *link = env->GetStringUTFChars(jlink, 0);
162   const char *variable = env->GetStringUTFChars(jvar, 0);
163   TRACE_link_variable_set(link, variable, jvalue);
164   env->ReleaseStringUTFChars(jlink, link);
165   env->ReleaseStringUTFChars(jvar, variable);
166 }
167 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkSrcDstVariableSet
168   (JNIEnv *env, jclass cls, jstring jsrc, jstring jdst, jstring jvar, jdouble jval)
169 {
170   const char *src = env->GetStringUTFChars(jsrc, 0);
171   const char *dst = env->GetStringUTFChars(jdst, 0);
172   const char *variable = env->GetStringUTFChars(jvar, 0);
173   TRACE_link_srcdst_variable_set(src,dst,variable, jval);
174   env->ReleaseStringUTFChars(jsrc, src);
175   env->ReleaseStringUTFChars(jdst, dst);
176   env->ReleaseStringUTFChars(jvar, variable);
177 }
178 /* Missing calls
179    JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableAdd(JNIEnv *, jclass, jstring, jstring, jdouble)
180    JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableSub(JNIEnv *env, jclass cls, jstring, jstring,
181                                                                        jdouble)
182    JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableSetWithTime(JNIEnv *, jclass, jdouble, jstring,
183                                                                                jstring, jdouble)
184    JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableAddWithTime(JNIEnv *, jclass, jdouble, jstring,
185                                                                                jstring, jdouble)
186    JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableSubWithTime(JNIEnv *, jclass, jdouble, jstring,
187                                                                                jstring, jdouble)
188    JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkSrcDstVariableAdd(JNIEnv *, jclass, jstring, jstring,
189                                                                              jstring, jdouble)
190    JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkSrcDstVariableSub(JNIEnv *, jclass, jstring, jstring,
191                                                                              jstring, jdouble)
192    JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkSrcDstVariableSetWithTime(JNIEnv *env, jclass cls, jdouble,
193                                                                                      jstring, jstring, jstring, jdouble)
194    JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkSrcdstVariableAddWithTime(JNIEnv *env, jclass cls, jdouble,
195                                                                                      jstring, jstring, jstring, jdouble)
196    JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkSrcDstVariableSubWithTime(JNIEnv *env, jclass cls, jdouble,
197                                                                                      jstring, jstring, jstring, jdouble)
198 */