1 /* Java Wrappers to the TRACE API. */
3 /* Copyright (c) 2012-2015. The SimGrid Team.
4 * All rights reserved. */
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. */
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 ;)
13 #include <simgrid/instr.h>
15 /* Shut up some errors in eclipse online compiler. I wish such a pimple wouldn't be needed */
22 /* end of eclipse-mandated pimple */
24 // Define a new category
25 XBT_LOG_NEW_DEFAULT_CATEGORY (jtrace, "TRACE for Java(TM)");
27 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostStateDeclare(JNIEnv * env, jclass cls, jstring js)
29 const char *s = env->GetStringUTFChars(js, 0);
30 TRACE_host_state_declare(s);
31 env->ReleaseStringUTFChars(js, s);
34 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostStateDeclareValue (JNIEnv *env, jclass cls, jstring js_state,
35 jstring js_value, jstring js_color)
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);
41 TRACE_host_state_declare_value(state, value, color);
43 env->ReleaseStringUTFChars(js_state, state);
44 env->ReleaseStringUTFChars(js_value, value);
45 env->ReleaseStringUTFChars(js_color, color);
48 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostSetState (JNIEnv *env, jclass cls, jstring js_host,
49 jstring js_state, jstring js_value)
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);
55 TRACE_host_set_state(host, state, value);
57 env->ReleaseStringUTFChars(js_host, host);
58 env->ReleaseStringUTFChars(js_state, state);
59 env->ReleaseStringUTFChars(js_value, value);
62 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostPushState (JNIEnv *env, jclass cls, jstring js_host,
63 jstring js_state, jstring js_value)
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);
69 TRACE_host_push_state(host, state, value);
71 env->ReleaseStringUTFChars(js_host, host);
72 env->ReleaseStringUTFChars(js_state, state);
73 env->ReleaseStringUTFChars(js_value, value);
76 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostPopState (JNIEnv *env, jclass cls, jstring js_host,
79 const char *host = env->GetStringUTFChars(js_host, 0);
80 const char *state = env->GetStringUTFChars(js_state, 0);
82 TRACE_host_pop_state(host, state);
84 env->ReleaseStringUTFChars(js_host, host);
85 env->ReleaseStringUTFChars(js_state, state);
88 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableDeclare (JNIEnv *env, jclass cls, jstring js_state)
90 const char *state = env->GetStringUTFChars(js_state, 0);
91 TRACE_host_variable_declare(state);
92 env->ReleaseStringUTFChars(js_state, state);
95 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSet (JNIEnv *env, jclass cls, jstring js_host,
96 jstring js_state, jdouble value)
98 const char *host = env->GetStringUTFChars(js_host, 0);
99 const char *state = env->GetStringUTFChars(js_state, 0);
101 TRACE_host_variable_set(host, state, value);
103 env->ReleaseStringUTFChars(js_host, host);
104 env->ReleaseStringUTFChars(js_state, state);
107 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSub (JNIEnv *env, jclass cls, jstring js_host,
108 jstring js_state, jdouble value)
110 const char *host = env->GetStringUTFChars(js_host, 0);
111 const char *state = env->GetStringUTFChars(js_state, 0);
113 TRACE_host_variable_sub(host, state, value);
115 env->ReleaseStringUTFChars(js_host, host);
116 env->ReleaseStringUTFChars(js_state, state);
119 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableDeclare (JNIEnv *env, jclass cls, jstring js_state)
121 const char *state = env->GetStringUTFChars(js_state, 0);
123 TRACE_vm_variable_declare(state);
125 env->ReleaseStringUTFChars(js_state, state);
128 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableSet (JNIEnv *env, jclass cls, jstring js_vm,
129 jstring js_state, jdouble value)
131 const char *vm = env->GetStringUTFChars(js_vm, 0);
132 const char *state = env->GetStringUTFChars(js_state, 0);
134 TRACE_vm_variable_set(vm, state, value);
136 env->ReleaseStringUTFChars(js_vm, vm);
137 env->ReleaseStringUTFChars(js_state, state);
140 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableAdd (JNIEnv *env, jclass cls, jstring js_host,
141 jstring js_state, jdouble value)
143 const char *host = env->GetStringUTFChars(js_host, 0);
144 const char *state = env->GetStringUTFChars(js_state, 0);
146 TRACE_host_variable_set(host, state, value);
148 env->ReleaseStringUTFChars(js_host, host);
149 env->ReleaseStringUTFChars(js_state, state);
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);
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);
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);
171 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_linkSrcDstVariableSet
172 (JNIEnv *env, jclass cls, jstring jsrc, jstring jdst, jstring jvar, jdouble jval)
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);
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);