Logo AND Algorithmique Numérique Distribuée

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