f99efa009c2b580a7f5ab99d978b6a02457454e5
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.jni / src / org / eclipse / linuxtools / lttng / jni_v2_3 / JniTrace_v2_3.java
1 package org.eclipse.linuxtools.lttng.jni_v2_3;
2 /*******************************************************************************
3 * Copyright (c) 2009, 2011 Ericsson, MontaVista Software
4 *
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
9 *
10 * Contributors:
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 *******************************************************************************/
15
16 import org.eclipse.linuxtools.lttng.jni.JniTrace;
17 import org.eclipse.linuxtools.lttng.jni.JniTracefile;
18 import org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id;
19 import org.eclipse.linuxtools.lttng.jni.exception.JniException;
20
21 /**
22 * <b><u>JniTrace_v2_3</u></b>
23 * <p>
24 * JniTrace version to support Lttng traceformat of version 2.3.<br>
25 * This class extend abstract class JniTrace with (possibly) version specific implementation.<br>
26 *
27 * It also make sure the correct library is loaded by liblttvlibraryloader.so
28 * <p>
29 */
30 public class JniTrace_v2_3 extends JniTrace {
31
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.3.so"; //$NON-NLS-1$
36
37 /*
38 * Forbid access to the default constructor
39 */
40 protected JniTrace_v2_3() {
41 super();
42 }
43
44
45 public JniTrace_v2_3(String newpath) throws JniException {
46 super(newpath);
47 }
48
49 public JniTrace_v2_3(String newpath, boolean newPrintDebug) throws JniException {
50 super(newpath, newPrintDebug);
51 }
52
53
54 public JniTrace_v2_3(JniTrace_v2_3 oldTrace) {
55 super(oldTrace);
56 }
57
58 public JniTrace_v2_3(Jni_C_Pointer_And_Library_Id newPtr, boolean newPrintDebug) throws JniException {
59 super(newPtr, newPrintDebug);
60 }
61
62 /**
63 * Get the trace library name
64 * <p>
65 *
66 * Get the version specific native trace library name
67 *
68 * @return The native trace library name
69 */
70 @Override
71 public String getTraceLibName() {
72 return LIBRARY_NAME;
73 }
74
75 /**
76 * Allocate (call constructor for) a new JniTracefile.<p>
77 *
78 * This method is made to bypass limitation related to abstract class, see comment in JniTrace
79 *
80 * @return JniTracefile a newly allocated JniTracefile
81 *
82 * @see org.eclipse.linuxtools.lttng.jni.JniTrace
83 */
84 @Override
85 public JniTracefile allocateNewJniTracefile(Jni_C_Pointer_And_Library_Id newPtr, JniTrace newParentTrace) throws JniException {
86 return new JniTracefile_v2_3(newPtr, newParentTrace);
87 }
88
89 }
This page took 0.035809 seconds and 4 git commands to generate.