Rework about dialog by using gtk_show_about_dialog
[lttv.git] / ltt / jni_interface.c
index 255f3227704b669e869190b1c9b531f3e3d5361c..52c9993c5e035f3319a838d858e7f2cab2c8ac6e 100644 (file)
@@ -30,7 +30,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdint.h>
-
+#include <errno.h>
 /* 
 ***FIXME***
 ***HACK***
@@ -142,7 +142,24 @@ JNIEXPORT jlong JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniTrace_ltt_1open
         }
         
         const char *c_pathname = (*env)->GetStringUTFChars(env, pathname, 0);
-        LttTrace *newPtr = ltt_trace_open( c_pathname );
+        LttTrace *newPtr = ltt_trace_open(c_pathname);
+        
+        (*env)->ReleaseStringUTFChars(env, pathname, c_pathname);
+        
+        return CONVERT_PTR_TO_JLONG(newPtr); 
+}
+
+/* JNI mapping of   < LttTrace *ltt_trace_open_live(const gchar *pathname)  > (trace.h) */
+JNIEXPORT jlong JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniTrace_ltt_1openTraceLive(JNIEnv *env, jobject jobj, jstring pathname, jboolean show_debug) {
+        
+        if ( !show_debug) {
+                /* Make sure we don't use any debug (speed up the read) */
+                g_log_set_handler(NULL, G_LOG_LEVEL_INFO, ignore_and_drop_message, NULL);
+                g_log_set_handler(NULL, G_LOG_LEVEL_DEBUG, ignore_and_drop_message, NULL);
+        }
+        
+        const char *c_pathname = (*env)->GetStringUTFChars(env, pathname, 0);
+        LttTrace *newPtr = ltt_trace_open_live(c_pathname);
         
         (*env)->ReleaseStringUTFChars(env, pathname, c_pathname);
         
@@ -242,6 +259,14 @@ JNIEXPORT jlong JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniTrace_ltt_1getS
         return CONVERT_UINT64_TO_JLONG(newPtr->start_monotonic);
 }
 
+/* JNI mapping of  < int ltt_trace_update(LttTrace *t)  > (trace.h) */
+JNIEXPORT jint JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniTrace_ltt_1updateTrace(JNIEnv *env, jobject jobj, jlong trace_ptr){
+        
+        LttTrace *newPtr = (LttTrace*)CONVERT_JLONG_TO_PTR(trace_ptr);
+        
+        return (jint)ltt_trace_update(newPtr);
+}
+
 /* Access to start_time */
 /* Note that we are calling the setTimeFromC function in Jaf_Time from here */
 JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniTrace_ltt_1feedStartTime(JNIEnv *env, jobject jobj, jlong trace_ptr, jobject time_jobj) {
@@ -671,6 +696,9 @@ JNIEXPORT jint JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniEvent_ltt_1posit
             ERANGE  = 34    out of range, back to last event (might be system dependent?)
             EPERM   = 1     error while reading              (might be system dependent?)  */
         
+        if (tracefilePtr->trace == NULL) {
+            return (jint) EPERM;
+        }
         
         /* Seek to the start time... this will also read the first event, as we want. */
         int returnedValue = ltt_tracefile_seek_time(tracefilePtr, ((struct LttTrace)*(tracefilePtr->trace)).start_time_from_tsc);
@@ -998,20 +1026,6 @@ JNIEXPORT jint JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_
         return (jint)newPtr->type;
 }
 
-/* Get of offset */
-JNIEXPORT jlong JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_1getOffset(JNIEnv *env, jobject jobj, jlong marker_field_ptr) {
-        struct marker_field *newPtr = (struct marker_field*)CONVERT_JLONG_TO_PTR(marker_field_ptr);
-        
-        return CONVERT_UINT64_TO_JLONG(newPtr->offset);
-}
-
-/* Get of size */
-JNIEXPORT jlong JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_1getSize(JNIEnv *env, jobject jobj, jlong marker_field_ptr) {
-        struct marker_field *newPtr = (struct marker_field*)CONVERT_JLONG_TO_PTR(marker_field_ptr);
-        
-        return CONVERT_UINT64_TO_JLONG(newPtr->size);
-}
-
 /* Get of alignment */
 JNIEXPORT jlong JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_1getAlignment(JNIEnv *env, jobject jobj, jlong marker_field_ptr) {
         struct marker_field *newPtr = (struct marker_field*)CONVERT_JLONG_TO_PTR(marker_field_ptr);
@@ -1046,8 +1060,6 @@ JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_
         
         printf("name          : %s\n"  ,g_quark_to_string(newPtr->name) );
         printf("type          : %i\n"  ,(int)newPtr->type );
-        printf("offset        : %lu\n" ,(long unsigned int)newPtr->offset );
-        printf("size          : %lu\n" ,(long unsigned int)newPtr->size );
         printf("alignment     : %lu\n" ,(long unsigned int)newPtr->alignment );
         printf("attributes    : %lu\n" ,(long unsigned int)newPtr->attributes );
         printf("static_offset : %i\n"  ,(int)newPtr->static_offset );
@@ -1068,6 +1080,7 @@ JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniMarkerField_ltt_
 JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniParser_ltt_1getParsedData(JNIEnv *env, jclass accessClass, jobject javaObj, jlong event_ptr, jlong marker_field_ptr) {
         LttEvent newEventPtr = *(LttEvent*)(CONVERT_JLONG_TO_PTR(event_ptr));
         struct marker_field *newMarkerFieldPtr = (struct marker_field*)CONVERT_JLONG_TO_PTR(marker_field_ptr);
+        struct LttField *newLttFieldPtr = ltt_event_field(&newEventPtr, marker_field_get_index(newMarkerFieldPtr));
         
         jmethodID accessFunction = NULL;
         
@@ -1131,7 +1144,7 @@ JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_JniParser_ltt_1getP
                                                         accessClass, 
                                                         accessFunction, 
                                                         javaObj, 
-                                                        CONVERT_PTR_TO_JLONG(*(GINT_TYPE_FOR_PTR*)(newEventPtr.data + newMarkerFieldPtr->offset))
+                                                        CONVERT_PTR_TO_JLONG(*(GINT_TYPE_FOR_PTR*)(newEventPtr.data + newLttFieldPtr->offset))
                                                      );
                         break;
                         
This page took 0.023822 seconds and 4 git commands to generate.