1
package org.eclipse.linuxtools.internal.lttng.jni_v2_5;
2
/*******************************************************************************
3
* Copyright (c) 2009, 2011 Ericsson, MontaVista Software
5
* All rights reserved. This program and the accompanying materials are
6
* made available under the terms of the Eclipse Public License v1.0 which
7
* accompanies this distribution, and is available at
8
* http://www.eclipse.org/legal/epl-v10.html
11
* William Bourque (wbourque@gmail.com) - Initial API and implementation
12
* Yufen Kuo (ykuo@mvista.com) - add support to allow user specify trace library path
13
* Yufen Kuo (ykuo@mvista.com) - bug 340341: handle gracefully when native library failed to initialize
14
*******************************************************************************/
16
import org.eclipse.linuxtools.internal.lttng.jni.common.Jni_C_Pointer_And_Library_Id;
17
import org.eclipse.linuxtools.internal.lttng.jni.exception.JniException;
18
import org.eclipse.linuxtools.lttng.jni.JniTrace;
19
import org.eclipse.linuxtools.lttng.jni.JniTracefile;
22
* <b><u>JniTrace_v2_5</u></b>
24
* JniTrace version to support Lttng traceformat of version 2.5.<br>
25
* This class extend abstract class JniTrace with (possibly) version specific implementation (none yet).<br>
27
* It also make sure the correct library is loaded by liblttvlibraryloader.so
30
public class JniTrace_v2_5 extends JniTrace {
32
// This is the dynamic library name that is passed to the library loader (liblttvlibraryloader.so) to load.
33
// It needs to be a complete name, like "libXYZ.so", unlike java that would take "XYZ". It could also take a complete path.
34
// The library need to be accessible, i.e. LD_LIBRARY_PATH need to be set correctly.
35
private static final String LIBRARY_NAME = "liblttvtraceread-2.5.so"; //$NON-NLS-1$
38
* Forbid access to the default constructor
40
protected JniTrace_v2_5() {
45
public JniTrace_v2_5(String newpath) throws JniException {
49
public JniTrace_v2_5(String newpath, boolean newPrintDebug) throws JniException {
50
super(newpath, newPrintDebug);
54
public JniTrace_v2_5(JniTrace_v2_5 oldTrace) {
58
public JniTrace_v2_5(Jni_C_Pointer_And_Library_Id newPtr, boolean newPrintDebug) throws JniException {
59
super(newPtr, newPrintDebug);
64
* Get the trace library name
67
* Get the version specific native trace library name
69
* @return The native trace library name
72
public String getTraceLibName() {
77
* Allocate (call constructor for) a new JniTracefile.<p>
79
* This method is made to bypass limitation related to abstract class, see comment in JniTrace
81
* @return JniTracefile a newly allocated JniTracefile
83
* @see org.eclipse.linuxtools.lttng.jni.JniTrace
86
public JniTracefile allocateNewJniTracefile(Jni_C_Pointer_And_Library_Id newPtr, JniTrace newParentTrace) throws JniException {
87
return new JniTracefile_v2_5(newPtr, newParentTrace);