tracefile.c: Seek fix
[lttv.git] / ltt / jni_interface.c
index d4a720732dd5799458f7e6e29b246bea0cef73ef..d1bd993740cbab25be544648a93c73ff31384dae 100644 (file)
@@ -1,3 +1,20 @@
+/* This file is part of the Linux Trace Toolkit viewer
+ * Copyright (C) 2010 William Bourque
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License Version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
 
 /* Important to get consistent size_t type */
 #define _FILE_OFFSET_BITS 64
@@ -71,7 +88,6 @@ struct saveTimeAndTracefile
         LttTracefile *tracefile;
 };
 
-
 /* 
 ### COMMON Methods ###
 #
@@ -88,6 +104,26 @@ JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_Jni_1C_1Common_ltt_
         
         (*env)->ReleaseStringUTFChars(env, new_string, c_msg);
 }
+
+/* Method to obtain a trace version number from its path */
+JNIEXPORT void JNICALL Java_org_eclipse_linuxtools_lttng_jni_factory_JniTraceVersion_ltt_1getTraceVersion(JNIEnv *env, jobject jobj, jstring tracepath) {
+
+        const gchar *c_pathname = (*env)->GetStringUTFChars(env, tracepath, 0);
+        jint tmpMajorNumber = 0;
+        jint tmpMinorNumber = 0;
+
+        jclass accessClass = (*env)->GetObjectClass(env, jobj);
+        jmethodID accessFunction = (*env)->GetMethodID(env, accessClass, "setTraceVersionFromC", "(II)V");
+
+        struct LttTraceVersion version_number;
+
+        if ( ltt_get_trace_version(c_pathname, &version_number) >= 0) {
+                tmpMajorNumber = version_number.ltt_major_version;
+                tmpMinorNumber = version_number.ltt_minor_version;
+        }
+
+        (*env)->CallVoidMethod(env, jobj, accessFunction, tmpMajorNumber, tmpMinorNumber );
+}
 /* 
 #
 #### */
@@ -962,20 +998,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);
@@ -1010,8 +1032,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 );
@@ -1032,6 +1052,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;
         
@@ -1095,7 +1116,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.023654 seconds and 4 git commands to generate.