1 /* Java Wrappers to the TRACE API. */
3 /* Copyright (c) 2012-2014. 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.c,
10 // It will be great that a JNI expert gives a look to validate it - Adrien ;)
13 #include <instr/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_SUBCATEGORY (jtrace, bindings, "TRACE for Java(TM)");
27 JNIEXPORT void JNICALL
28 Java_org_simgrid_trace_Trace_hostStateDeclare(JNIEnv * env, jclass cls, jstring js)
30 const char *s = (*env)->GetStringUTFChars(env, js, 0);
31 TRACE_host_state_declare(s);
32 (*env)->ReleaseStringUTFChars(env, js, s);
35 JNIEXPORT void JNICALL
36 Java_org_simgrid_trace_Trace_hostStateDeclareValue
37 (JNIEnv *env, jclass cls, jstring js_state, jstring js_value, jstring js_color)
39 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
40 const char *value = (*env)->GetStringUTFChars(env, js_value, 0);
41 const char *color = (*env)->GetStringUTFChars(env, js_color, 0);
43 TRACE_host_state_declare_value(state, value, color);
45 (*env)->ReleaseStringUTFChars(env, js_state, state);
46 (*env)->ReleaseStringUTFChars(env, js_value, value);
47 (*env)->ReleaseStringUTFChars(env, js_color, color);
50 JNIEXPORT void JNICALL
51 Java_org_simgrid_trace_Trace_hostSetState
52 (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jstring js_value)
54 const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
55 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
56 const char *value = (*env)->GetStringUTFChars(env, js_value, 0);
58 TRACE_host_set_state(host, state, value);
60 (*env)->ReleaseStringUTFChars(env, js_host, host);
61 (*env)->ReleaseStringUTFChars(env, js_state, state);
62 (*env)->ReleaseStringUTFChars(env, js_value, value);
65 JNIEXPORT void JNICALL
66 Java_org_simgrid_trace_Trace_hostPushState
67 (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jstring js_value)
69 const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
70 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
71 const char *value = (*env)->GetStringUTFChars(env, js_value, 0);
73 TRACE_host_push_state(host, state, value);
75 (*env)->ReleaseStringUTFChars(env, js_host, host);
76 (*env)->ReleaseStringUTFChars(env, js_state, state);
77 (*env)->ReleaseStringUTFChars(env, js_value, value);
80 JNIEXPORT void JNICALL
81 Java_org_simgrid_trace_Trace_hostPopState
82 (JNIEnv *env, jclass cls, jstring js_host, jstring js_state)
84 const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
85 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
87 TRACE_host_pop_state(host, state);
89 (*env)->ReleaseStringUTFChars(env, js_host, host);
90 (*env)->ReleaseStringUTFChars(env, js_state, state);
93 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableDeclare
94 (JNIEnv *env, jclass cls, jstring js_state)
96 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
98 TRACE_host_variable_declare(state);
100 (*env)->ReleaseStringUTFChars(env, js_state, state);
103 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSet
104 (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jdouble value)
106 const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
107 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
109 TRACE_host_variable_set(host, state, value);
111 (*env)->ReleaseStringUTFChars(env, js_host, host);
112 (*env)->ReleaseStringUTFChars(env, js_state, state);
115 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSub
116 (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jdouble value)
118 const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
119 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
121 TRACE_host_variable_sub(host, state, value);
123 (*env)->ReleaseStringUTFChars(env, js_host, host);
124 (*env)->ReleaseStringUTFChars(env, js_state, state);
129 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableDeclare
130 (JNIEnv *env, jclass cls, jstring js_state)
132 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
134 TRACE_vm_variable_declare(state);
136 (*env)->ReleaseStringUTFChars(env, js_state, state);
139 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableSet
140 (JNIEnv *env, jclass cls, jstring js_vm, jstring js_state, jdouble value)
142 const char *vm = (*env)->GetStringUTFChars(env, js_vm, 0);
143 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
145 TRACE_vm_variable_set(vm, state, value);
147 (*env)->ReleaseStringUTFChars(env, js_vm, vm);
148 (*env)->ReleaseStringUTFChars(env, js_state, state);
151 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableAdd
152 (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jdouble value) {
154 const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
155 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
157 TRACE_host_variable_set(host, state, value);
159 (*env)->ReleaseStringUTFChars(env, js_host, host);
160 (*env)->ReleaseStringUTFChars(env, js_state, state);