Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update the ChangeLog with Traces stuf + Trace stuff - Adrien
[simgrid.git] / src / jtrace.c
1 /* Java Wrappers to the TRACE API.                                           */
2
3 /* Copyright (c) 2012  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
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 ;)
12
13 #include "jtrace.h"
14 #include <instr/instr.h>
15
16 /* Shut up some errors in eclipse online compiler. I wish such a pimple wouldn't be needed */
17 #ifndef JNIEXPORT
18 #define JNIEXPORT
19 #endif
20 #ifndef JNICALL
21 #define JNICALL
22 #endif
23 /* end of eclipse-mandated pimple */
24
25 // Define a new category
26 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (jtrace, bindings, "TRACE for Java(TM)");
27
28 JNIEXPORT void JNICALL
29 Java_org_simgrid_trace_Trace_hostStateDeclare(JNIEnv * env, jclass cls, jstring js)
30 {
31   const char *s = (*env)->GetStringUTFChars(env, js, 0);
32   TRACE_host_state_declare(s);  
33   (*env)->ReleaseStringUTFChars(env, js, s);
34 }
35
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)
39 {
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);
43
44   TRACE_host_state_declare_value(state, value, color);  
45   
46   (*env)->ReleaseStringUTFChars(env, js_state, state);
47   (*env)->ReleaseStringUTFChars(env, js_value, value);
48   (*env)->ReleaseStringUTFChars(env, js_color, color);
49 }
50
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)
54 {
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);
58
59   TRACE_host_set_state(host, state, value);  
60   
61   (*env)->ReleaseStringUTFChars(env, js_host, host);
62   (*env)->ReleaseStringUTFChars(env, js_state, state);
63   (*env)->ReleaseStringUTFChars(env, js_value, value);
64 }
65
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)
69 {
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);
73
74   TRACE_host_push_state(host, state, value);  
75   
76   (*env)->ReleaseStringUTFChars(env, js_host, host);
77   (*env)->ReleaseStringUTFChars(env, js_state, state);
78   (*env)->ReleaseStringUTFChars(env, js_value, value);
79 }
80
81 JNIEXPORT void JNICALL
82 Java_org_simgrid_trace_Trace_hostPopState
83   (JNIEnv *env, jclass cls, jstring js_host, jstring js_state)
84 {
85   const char *host = (*env)->GetStringUTFChars(env, js_host, 0);
86   const char *state = (*env)->GetStringUTFChars(env, js_state, 0);
87
88   TRACE_host_pop_state(host, state);  
89   
90   (*env)->ReleaseStringUTFChars(env, js_host, host);
91   (*env)->ReleaseStringUTFChars(env, js_state, state);
92 }