Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[cmake] Mark as advanced some internal variables
[simgrid.git] / src / bindings / java / jtrace.c
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.c, 
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_SUBCATEGORY (jtrace, bindings, "TRACE for Java(TM)");
26
27 JNIEXPORT void JNICALL
28 Java_org_simgrid_trace_Trace_hostStateDeclare(JNIEnv * env, jclass cls, jstring js)
29 {
30   const char *s = (*env)->GetStringUTFChars(env, js, 0);
31   TRACE_host_state_declare(s);  
32   (*env)->ReleaseStringUTFChars(env, js, s);
33 }
34
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)
38 {
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);
42
43   TRACE_host_state_declare_value(state, value, color);  
44   
45   (*env)->ReleaseStringUTFChars(env, js_state, state);
46   (*env)->ReleaseStringUTFChars(env, js_value, value);
47   (*env)->ReleaseStringUTFChars(env, js_color, color);
48 }
49
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)
53 {
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);
57
58   TRACE_host_set_state(host, state, value);  
59   
60   (*env)->ReleaseStringUTFChars(env, js_host, host);
61   (*env)->ReleaseStringUTFChars(env, js_state, state);
62   (*env)->ReleaseStringUTFChars(env, js_value, value);
63 }
64
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)
68 {
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);
72
73   TRACE_host_push_state(host, state, value);  
74   
75   (*env)->ReleaseStringUTFChars(env, js_host, host);
76   (*env)->ReleaseStringUTFChars(env, js_state, state);
77   (*env)->ReleaseStringUTFChars(env, js_value, value);
78 }
79
80 JNIEXPORT void JNICALL
81 Java_org_simgrid_trace_Trace_hostPopState
82   (JNIEnv *env, jclass cls, jstring js_host, jstring js_state)
83 {
84   const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
85   const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
86
87   TRACE_host_pop_state(host, state);  
88   
89   (*env)->ReleaseStringUTFChars(env, js_host, host);
90   (*env)->ReleaseStringUTFChars(env, js_state, state);
91 }
92
93 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableDeclare
94   (JNIEnv *env, jclass cls, jstring js_state)
95 {
96   const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
97
98   TRACE_host_variable_declare(state);
99
100   (*env)->ReleaseStringUTFChars(env, js_state, state);
101 }
102
103 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSet
104   (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jdouble value)
105 {
106   const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
107   const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
108
109   TRACE_host_variable_set(host, state, value);
110
111   (*env)->ReleaseStringUTFChars(env, js_host, host);
112   (*env)->ReleaseStringUTFChars(env, js_state, state);
113 }
114
115 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableSub
116   (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jdouble value)
117 {
118   const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
119   const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
120
121   TRACE_host_variable_sub(host, state, value);
122
123   (*env)->ReleaseStringUTFChars(env, js_host, host);
124   (*env)->ReleaseStringUTFChars(env, js_state, state);
125 }
126
127
128
129 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableDeclare
130   (JNIEnv *env, jclass cls, jstring js_state)
131 {
132   const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
133
134   TRACE_vm_variable_declare(state);
135
136   (*env)->ReleaseStringUTFChars(env, js_state, state);
137 }
138
139 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_vmVariableSet
140   (JNIEnv *env, jclass cls, jstring js_vm, jstring js_state, jdouble value)
141 {
142   const char *vm = (*env)->GetStringUTFChars(env, js_vm, 0);
143   const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
144
145   TRACE_vm_variable_set(vm, state, value);
146
147   (*env)->ReleaseStringUTFChars(env, js_vm, vm);
148   (*env)->ReleaseStringUTFChars(env, js_state, state);
149 }
150
151 JNIEXPORT void JNICALL Java_org_simgrid_trace_Trace_hostVariableAdd
152   (JNIEnv *env, jclass cls, jstring js_host, jstring js_state, jdouble value) {
153
154   const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
155   const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
156
157   TRACE_host_variable_set(host, state, value);
158
159   (*env)->ReleaseStringUTFChars(env, js_host, host);
160   (*env)->ReleaseStringUTFChars(env, js_state, state);
161 }