Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
d097358f24c78659ca039edc8ca7177ec37b93fd
[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 SG_BEGIN_DECL()
28
29 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostStateDeclare(JNIEnv * env, jclass cls, jstring js)
30 {
31   const char *s = env->GetStringUTFChars(js, 0);
32   TRACE_host_state_declare(s);  
33   env->ReleaseStringUTFChars(js, s);
34 }
35
36 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostStateDeclareValue (JNIEnv *env, jclass cls, jstring js_state,
37                                                                            jstring js_value, jstring js_color)
38 {
39   const char *state = env->GetStringUTFChars(js_state, 0);
40   const char *value = env->GetStringUTFChars(js_value, 0);
41   const char *color = env->GetStringUTFChars(js_color, 0);
42
43   TRACE_host_state_declare_value(state, value, color);  
44
45   env->ReleaseStringUTFChars(js_state, state);
46   env->ReleaseStringUTFChars(js_value, value);
47   env->ReleaseStringUTFChars(js_color, color);
48 }
49
50 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostSetState (JNIEnv *env, jclass cls, jstring js_host,
51                                                                   jstring js_state, jstring js_value)
52 {
53   const char *host = env->GetStringUTFChars(js_host, 0);
54   const char *state = env->GetStringUTFChars(js_state, 0);
55   const char *value = env->GetStringUTFChars(js_value, 0);
56
57   TRACE_host_set_state(host, state, value);  
58
59   env->ReleaseStringUTFChars(js_host, host);
60   env->ReleaseStringUTFChars(js_state, state);
61   env->ReleaseStringUTFChars(js_value, value);
62 }
63
64 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostPushState (JNIEnv *env, jclass cls, jstring js_host,
65                                                                    jstring js_state, jstring js_value)
66 {
67   const char *host = env->GetStringUTFChars(js_host, 0);
68   const char *state = env->GetStringUTFChars(js_state, 0);
69   const char *value = env->GetStringUTFChars(js_value, 0);
70
71   TRACE_host_push_state(host, state, value);  
72
73   env->ReleaseStringUTFChars(js_host, host);
74   env->ReleaseStringUTFChars(js_state, state);
75   env->ReleaseStringUTFChars(js_value, value);
76 }
77
78 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostPopState (JNIEnv *env, jclass cls, jstring js_host,
79                                                                   jstring js_state)
80 {
81   const char *host = env->GetStringUTFChars(js_host, 0);
82   const char *state = env->GetStringUTFChars(js_state, 0);
83
84   TRACE_host_pop_state(host, state);  
85
86   env->ReleaseStringUTFChars(js_host, host);
87   env->ReleaseStringUTFChars(js_state, state);
88 }
89
90 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableDeclare (JNIEnv *env, jclass cls, jstring js_state)
91 {
92   const char *state = env->GetStringUTFChars(js_state, 0);
93   TRACE_host_variable_declare(state);
94   env->ReleaseStringUTFChars(js_state, state);
95 }
96
97 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSet (JNIEnv *env, jclass cls, jstring js_host,
98                                                                      jstring js_state, jdouble value)
99 {
100   const char *host = env->GetStringUTFChars(js_host, 0);
101   const char *state = env->GetStringUTFChars(js_state, 0);
102
103   TRACE_host_variable_set(host, state, value);
104
105   env->ReleaseStringUTFChars(js_host, host);
106   env->ReleaseStringUTFChars(js_state, state);
107 }
108
109 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSub (JNIEnv *env, jclass cls, jstring js_host,
110                                                                      jstring js_state, jdouble value)
111 {
112   const char *host = env->GetStringUTFChars(js_host, 0);
113   const char *state = env->GetStringUTFChars(js_state, 0);
114
115   TRACE_host_variable_sub(host, state, value);
116
117   env->ReleaseStringUTFChars(js_host, host);
118   env->ReleaseStringUTFChars(js_state, state);
119 }
120
121 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableDeclare (JNIEnv *env, jclass cls, jstring js_state)
122 {
123   const char *state = env->GetStringUTFChars(js_state, 0);
124
125   TRACE_vm_variable_declare(state);
126
127   env->ReleaseStringUTFChars(js_state, state);
128 }
129
130 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableSet (JNIEnv *env, jclass cls, jstring js_vm,
131                                                                    jstring js_state, jdouble value)
132 {
133   const char *vm = env->GetStringUTFChars(js_vm, 0);
134   const char *state = env->GetStringUTFChars(js_state, 0);
135
136   TRACE_vm_variable_set(vm, state, value);
137
138   env->ReleaseStringUTFChars(js_vm, vm);
139   env->ReleaseStringUTFChars(js_state, state);
140 }
141
142 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableAdd (JNIEnv *env, jclass cls, jstring js_host,
143                                                                      jstring js_state, jdouble value)
144 {
145   const char *host = env->GetStringUTFChars(js_host, 0);
146   const char *state = env->GetStringUTFChars(js_state, 0);
147
148   TRACE_host_variable_set(host, state, value);
149
150   env->ReleaseStringUTFChars(js_host, host);
151   env->ReleaseStringUTFChars(js_state, state);
152 }
153
154 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableDeclare (JNIEnv *env, jclass cls, jstring jvar) {
155   const char *variable = env->GetStringUTFChars(jvar, 0);
156   TRACE_link_variable_declare (variable);
157   env->ReleaseStringUTFChars(jvar, variable);
158 }
159 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableDeclareWithColor (JNIEnv *env, jclass cls, jstring jvar, jstring jcolor) {
160   const char *variable = env->GetStringUTFChars(jvar, 0);
161   const char *color = env->GetStringUTFChars(jcolor, 0);
162   TRACE_link_variable_declare_with_color(variable,color);
163   env->ReleaseStringUTFChars(jvar, variable);
164   env->ReleaseStringUTFChars(jcolor, color);
165 }
166 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableSet (JNIEnv *env, jclass cls, jstring jlink, jstring jvar, jdouble jvalue) {
167   const char *link = env->GetStringUTFChars(jlink, 0);
168   const char *variable = env->GetStringUTFChars(jvar, 0);
169   TRACE_link_variable_set(link, variable, jvalue);
170   env->ReleaseStringUTFChars(jlink, link);
171   env->ReleaseStringUTFChars(jvar, variable);
172 }
173 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkSrcDstVariableSet
174   (JNIEnv *env, jclass cls, jstring jsrc, jstring jdst, jstring jvar, jdouble jval)
175 {
176   const char *src = env->GetStringUTFChars(jsrc, 0);
177   const char *dst = env->GetStringUTFChars(jdst, 0);
178   const char *variable = env->GetStringUTFChars(jvar, 0);
179   TRACE_link_srcdst_variable_set(src,dst,variable, jval);
180   env->ReleaseStringUTFChars(jsrc, src);
181   env->ReleaseStringUTFChars(jdst, dst);
182   env->ReleaseStringUTFChars(jvar, variable);
183 }
184 /* Missing calls
185 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableAdd (JNIEnv *, jclass, jstring, jstring, jdouble);
186 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableSub (JNIEnv *env, jclass cls, jstring, jstring, jdouble);
187 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableSetWithTime (JNIEnv *, jclass, jdouble, jstring, jstring, jdouble);
188 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableAddWithTime (JNIEnv *, jclass, jdouble, jstring, jstring, jdouble);
189 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkVariableSubWithTime (JNIEnv *, jclass, jdouble, jstring, jstring, jdouble);
190 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkSrcDstVariableAdd (JNIEnv *, jclass, jstring, jstring, jstring, jdouble);
191 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkSrcDstVariableSub (JNIEnv *, jclass, jstring, jstring, jstring, jdouble);
192 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkSrcDstVariableSetWithTime (JNIEnv *env, jclass cls, jdouble, jstring, jstring, jstring, jdouble);
193 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkSrcdstVariableAddWithTime (JNIEnv *env, jclass cls, jdouble, jstring, jstring, jstring, jdouble);
194 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkSrcDstVariableSubWithTime (JNIEnv *env, jclass cls, jdouble, jstring, jstring, jstring, jdouble);
195 */
196
197 SG_END_DECL()