+/* 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
LttTracefile *tracefile;
};
-
/*
### COMMON Methods ###
#
(*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 );
+}
/*
#
#### */
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);
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 );
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;
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;