1 /* Java Wrappers to the TRACE API. */
3 /* Copyright (c) 2012 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. */
10 // Please note, this file strongly relies on the jmsg.c,
11 // It will be great that a JNI expert gives a look to validate it - Adrien ;)
14 #include <instr/instr.h>
16 /* Shut up some errors in eclipse online compiler. I wish such a pimple wouldn't be needed */
23 /* end of eclipse-mandated pimple */
25 // Define a new category
26 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (jtrace, bindings, "TRACE for Java(TM)");
28 JNIEXPORT void JNICALL
29 Java_org_simgrid_trace_Trace_hostStateDeclare(JNIEnv * env, jclass cls, jstring js)
31 const char *s = (*env)->GetStringUTFChars(env, js, 0);
32 TRACE_host_state_declare(s);
33 (*env)->ReleaseStringUTFChars(env, js, s);
36 JNIEXPORT void JNICALL
37 Java_org_simgrid_trace_Trace_hostStateDeclareValue
38 (JNIEnv *env, jclass cls, jstring js_state, jstring js_value, jstring js_color)
40 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
41 const char *value = (*env)->GetStringUTFChars(env, js_value, 0);
42 const char *color = (*env)->GetStringUTFChars(env, js_color, 0);
44 TRACE_host_state_declare_value(state, value, color);
46 (*env)->ReleaseStringUTFChars(env, js_state, state);
47 (*env)->ReleaseStringUTFChars(env, js_value, value);
48 (*env)->ReleaseStringUTFChars(env, js_color, color);
51 JNIEXPORT void JNICALL
52 Java_org_simgrid_trace_Trace_hostSetState
53 (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jstring js_value)
55 const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
56 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
57 const char *value = (*env)->GetStringUTFChars(env, js_value, 0);
59 TRACE_host_set_state(host, state, value);
61 (*env)->ReleaseStringUTFChars(env, js_host, host);
62 (*env)->ReleaseStringUTFChars(env, js_state, state);
63 (*env)->ReleaseStringUTFChars(env, js_value, value);
66 JNIEXPORT void JNICALL
67 Java_org_simgrid_trace_Trace_hostPushState
68 (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jstring js_value)
70 const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
71 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
72 const char *value = (*env)->GetStringUTFChars(env, js_value, 0);
74 TRACE_host_push_state(host, state, value);
76 (*env)->ReleaseStringUTFChars(env, js_host, host);
77 (*env)->ReleaseStringUTFChars(env, js_state, state);
78 (*env)->ReleaseStringUTFChars(env, js_value, value);
81 JNIEXPORT void JNICALL
82 Java_org_simgrid_trace_Trace_hostPopState
83 (JNIEnv *env, jclass cls, jstring js_host, jstring js_state)
85 const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
86 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
88 TRACE_host_pop_state(host, state);
90 (*env)->ReleaseStringUTFChars(env, js_host, host);
91 (*env)->ReleaseStringUTFChars(env, js_state, state);
94 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableDeclare
95 (JNIEnv *env, jclass cls, jstring js_state)
97 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
99 TRACE_host_variable_declare(state);
101 (*env)->ReleaseStringUTFChars(env, js_state, state);
104 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSet
105 (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jdouble value)
107 const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
108 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
110 TRACE_host_variable_set(host, state, value);
112 (*env)->ReleaseStringUTFChars(env, js_host, host);
113 (*env)->ReleaseStringUTFChars(env, js_state, state);
116 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSub
117 (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jdouble value)
119 const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
120 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
122 TRACE_host_variable_sub(host, state, value);
124 (*env)->ReleaseStringUTFChars(env, js_host, host);
125 (*env)->ReleaseStringUTFChars(env, js_state, state);
130 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableDeclare
131 (JNIEnv *env, jclass cls, jstring js_state)
133 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
135 TRACE_vm_variable_declare(state);
137 (*env)->ReleaseStringUTFChars(env, js_state, state);
140 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableSet
141 (JNIEnv *env, jclass cls, jstring js_vm, jstring js_state, jdouble value)
143 const char *vm = (*env)->GetStringUTFChars(env, js_vm, 0);
144 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
146 TRACE_vm_variable_set(vm, state, value);
148 (*env)->ReleaseStringUTFChars(env, js_vm, vm);
149 (*env)->ReleaseStringUTFChars(env, js_state, state);
152 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableAdd
153 (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jdouble value) {
155 const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
156 const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
158 TRACE_host_variable_set(host, state, value);
160 (*env)->ReleaseStringUTFChars(env, js_host, host);
161 (*env)->ReleaseStringUTFChars(env, js_state, state);