Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Overholt2011-02-28 03:14:58 +0000
committerAndrew Overholt2011-02-28 03:17:09 +0000
commit429177f48392d531193049d4387bda901f84245e (patch)
tree3d58766bfbdd1392c1173cba2211d9c1e6d77faa
parent3ebedfbfca945e023c292dbde119602f1e1f160c (diff)
parentcff63467571db17c972d4ea9ccbe0d9e2c224f27 (diff)
downloadorg.eclipse.linuxtools-429177f48392d531193049d4387bda901f84245e.tar.gz
org.eclipse.linuxtools-429177f48392d531193049d4387bda901f84245e.tar.xz
org.eclipse.linuxtools-429177f48392d531193049d4387bda901f84245e.zip
Merge lttng 0.6.0
-rw-r--r--lttng/org.eclipse.linuxtools.lttng-feature/.project17
-rw-r--r--lttng/org.eclipse.linuxtools.lttng-feature/build.properties4
-rw-r--r--lttng/org.eclipse.linuxtools.lttng-feature/compile.org.eclipse.linuxtools.lttng-feature.xml8
-rw-r--r--lttng/org.eclipse.linuxtools.lttng-feature/epl-v10.html256
-rw-r--r--lttng/org.eclipse.linuxtools.lttng-feature/feature.properties144
-rw-r--r--lttng/org.eclipse.linuxtools.lttng-feature/feature.xml62
-rw-r--r--lttng/org.eclipse.linuxtools.lttng-feature/license.html107
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.headless/.classpath7
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.headless/.project28
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.headless/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.headless/META-INF/MANIFEST.MF9
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.headless/build.properties4
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.headless/src/JniTraceTest.java85
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.headless/src/LttngTraceTest.java103
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.headless/src/TmfTraceTest.java127
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/.project22
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/META-INF/MANIFEST.MF7
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/about.html26
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/build.properties6
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/controlFlowView.html67
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/eventsView.html26
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/experiment.html25
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/lttng.html16
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/lttv.html14
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/perspective.html31
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/projectView.html36
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/resourcesView.html67
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/statisticsView.html16
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/timeFrameView.html53
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/toc_concepts.html16
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/toc_general.html18
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/toc_userInterface.html21
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/concepts/trace.html48
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/install_lttng.html552
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/samples.html57
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/starting.html36
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/toc_gettingStarted.html20
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowView.pngbin0 -> 50288 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowView2.pngbin0 -> 44516 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowView3.pngbin0 -> 48614 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowViewTooltip.pngbin0 -> 53004 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/eventsView.pngbin0 -> 154171 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/eventsView1.pngbin0 -> 104161 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/eventsView2.pngbin0 -> 100447 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/garland_logo.pngbin0 -> 10835 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/importTraces.pngbin0 -> 58886 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/lttngEclipse1.pngbin0 -> 154109 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/lttngEclipse2.pngbin0 -> 154109 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/perspective.pngbin0 -> 173283 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/projectView.pngbin0 -> 26634 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesTooltip.pngbin0 -> 39331 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesView1.pngbin0 -> 31471 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesView2.pngbin0 -> 30965 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesView3.pngbin0 -> 26041 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/selectTraces.pngbin0 -> 27965 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/statistics1.pngbin0 -> 78052 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/timeFrameView.pngbin0 -> 12109 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/timeFrameView1.pngbin0 -> 14225 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/images/timeFrameView2.pngbin0 -> 15037 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/limitations/limitations.html136
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/limitations/toc_limitations.html15
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/reference/references.html24
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/reference/toc_reference.html15
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/html/toc.html58
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/plugin.properties3
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/plugin.xml25
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/toc.xml17
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/tocconcepts.xml20
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/tocgettingstarted.xml7
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/toclimitations.xml6
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.help/tocreference.xml6
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/.classpath7
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/.project28
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/META-INF/MANIFEST.MF14
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/about.html26
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/build.properties6
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/doc/JNI_Documentation.docbin0 -> 64512 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/doc/JNI_Documentation.pdfbin0 -> 456468 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/plugin.properties2
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniEvent.java468
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniMarker.java248
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniMarkerField.java139
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniParser.java297
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniTrace.java877
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniTracefile.java513
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/Jni_C_Common.java56
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/JniTime.java207
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/Jni_C_Constant.java50
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/Jni_C_Pointer.java104
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/Jni_C_Pointer_And_Library_Id.java71
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniEventException.java25
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniEventOutOfRangeException.java28
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniException.java27
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniMarkerException.java25
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniMarkerFieldException.java25
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniNoNextEventInTraceException.java28
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniNoSuchEventException.java28
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniOpenTraceFailedException.java27
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTraceException.java25
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTraceVersionException.java25
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTracefileException.java25
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTracefileWithoutEventException.java27
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/factory/JniTraceFactory.java90
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/factory/JniTraceVersion.java236
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniEvent_v2_3.java46
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniMarkerField_v2_3.java42
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniMarker_v2_3.java59
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniParser_v2_3.java31
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniTrace_v2_3.java87
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniTracefile_v2_3.java77
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_5/JniEvent_v2_5.java46
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_5/JniMarkerField_v2_5.java42
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_5/JniMarker_v2_5.java59
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_5/JniParser_v2_5.java31
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_5/JniTrace_v2_5.java89
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_5/JniTracefile_v2_5.java78
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_6/JniEvent_v2_6.java48
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_6/JniMarkerField_v2_6.java42
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_6/JniMarker_v2_6.java58
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_6/JniParser_v2_6.java31
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_6/JniTrace_v2_6.java86
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_6/JniTracefile_v2_6.java78
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.test-feature/.project17
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.test-feature/build.properties8
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.test-feature/epl-v10.html256
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.test-feature/feature.properties112
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.test-feature/feature.xml41
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/.classpath7
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/.project28
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/META-INF/MANIFEST.MF16
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/build.properties7
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/plugin.properties3
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/AllLTTngTests.java52
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/LttngTestPreparation.java343
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/control/LTTngSyntheticEventProviderTest.java91
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/control/LTTngSyntheticEventProviderTextTest.java76
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/model/LTTngTreeNodeTest.java268
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/state/experiment/StateExperimentManagerTextTest.java90
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/state/resource/LTTngStateResourceTest.java179
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/ActivateDebugging.java14
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/AllLTTngCoreTests.java54
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/LTTngCoreTestPlugin.java55
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/event/AllLttngTests.java22
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/event/LttngEventContentTest.java265
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/event/LttngEventFieldTest.java124
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/event/LttngEventReferenceTest.java137
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/event/LttngEventTest.java230
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/event/LttngEventTypeTest.java121
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/event/LttngTimestampTest.java128
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/jni/AllJniTests.java19
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/jni/Combinations.java176
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/jni/JniEventTest.java343
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/jni/JniMarkerFieldTest.java114
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/jni/JniMarkerTest.java122
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/jni/JniTraceTest.java380
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/jni/JniTracefileTest.java232
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/state/StateManagerFactoryTestSupport.java83
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/state/StateStacksHandlerTestSupport.java120
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/state/TestStateManager.java61
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/state/handlers/AbsStateUpdate.java568
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/state/handlers/after/StateAfterUpdateFactory.java160
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/state/handlers/after/StateAfterUpdateHandlers.java1591
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/state/handlers/before/StateBeforeUpdateFactory.java160
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/state/handlers/before/StateBeforeUpdateHandlers.java1580
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/state/tests/handlers/AbsStateUpdate.java568
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/trace/LTTngTextTraceTest.java265
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/tests/trace/LTTngTraceTest.java263
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/test.xml66
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/traceset/trace-15316events_nolost_newformat.tar.gzbin0 -> 150943 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/traceset/trace-15316events_nolost_newformat.txt15320
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/traceset/trace-15471events_nolost_newformat.tar.gzbin0 -> 152765 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.tests/traceset/trace-15471events_nolost_newformat.txt15475
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui.tests/.classpath8
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui.tests/.project28
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui.tests/META-INF/MANIFEST.MF12
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui.tests/build.properties7
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui.tests/plugin.properties3
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui.tests/stubs/org/eclipse/linuxtools/lttng/stubs/LTTngEventParserStub.java139
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui.tests/stubs/org/eclipse/linuxtools/lttng/stubs/LTTngTimestampStub.java52
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui.tests/stubs/org/eclipse/linuxtools/lttng/stubs/LTTngTraceStub.java169
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui.tests/test.xml55
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/.classpath7
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/.options3
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/.project28
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/META-INF/MANIFEST.MF18
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/about.html26
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/build.properties8
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/icons/LTTng.pngbin0 -> 1566 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/icons/control_flow_view.gifbin0 -> 215 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/icons/control_view.gifbin0 -> 152 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/icons/events_view.gifbin0 -> 97 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/icons/garland16.pngbin0 -> 631 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/icons/garland32.pngbin0 -> 1566 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/icons/histogram.gifbin0 -> 174 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/icons/project_view.gifbin0 -> 144 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/icons/resources_view.gifbin0 -> 101 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/icons/statistics_view.gifbin0 -> 343 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/icons/time_frame_view.gifbin0 -> 368 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/plugin.properties28
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/plugin.xml416
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/LTTngUiPlugin.java65
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/TraceDebug.java132
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/model/trange/ITimeRangeComponent.java43
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/model/trange/ItemContainer.java53
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/model/trange/TimeRangeComponent.java93
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/model/trange/TimeRangeComposite.java205
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/model/trange/TimeRangeEvent.java156
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/model/trange/TimeRangeEventProcess.java222
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/model/trange/TimeRangeEventResource.java176
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/model/trange/TimeRangeResourceFactory.java248
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/model/trange/TimeRangeViewerProvider.java229
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/PerspectiveFactory.java113
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/AbsTRangeUpdate.java63
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/AbsTimeUpdateView.java694
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/DataRequestQueue.java246
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/ParamsUpdater.java293
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/UiCommonFactory.java42
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/control/ControlView.java52
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/controlflow/ControlFlowView.java1098
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/controlflow/Messages.java33
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/controlflow/evProcessor/AbsFlowTRangeUpdate.java218
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/controlflow/evProcessor/FlowAfterUpdateHandlers.java379
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/controlflow/evProcessor/FlowBeforeUpdateHandlers.java390
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/controlflow/evProcessor/FlowEventToHandlerFactory.java177
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/controlflow/evProcessor/FlowFinishUpdateHandler.java109
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/controlflow/messages.properties26
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/controlflow/model/FlowModelFactory.java51
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/controlflow/model/FlowProcessContainer.java263
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/events/EventsView.java133
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/ChildrenHistogramCanvas.java48
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramCanvas.java369
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramCanvasControlListener.java63
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramCanvasFocusListener.java58
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramCanvasKeyListener.java95
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramCanvasMouseListener.java233
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramCanvasPaintListener.java167
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramConstant.java172
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramContent.java785
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramElement.java27
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramRequest.java235
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramSelectedWindow.java212
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramView.java973
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/ParentHistogramCanvas.java173
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/ParentHistogramCanvasPaintListener.java144
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/TimeTextGroup.java476
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/LTTngProjectNature.java60
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/ProjectView.java214
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/dialogs/AddTraceWizard.java94
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/dialogs/AddTraceWizardPage.java83
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/dialogs/DialogTraceContentProvider.java51
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/dialogs/DialogTraceLabelProvider.java50
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/dialogs/ImportTraceWizard.java117
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/dialogs/ImportTraceWizardPage.java342
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/dialogs/NewExperimentDialog.java335
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/dialogs/NewProjectMainWizardPage.java32
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/dialogs/NewProjectWizard.java147
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/dialogs/TraceErrorDialog.java135
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/CloseProjectHandler.java95
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/DeleteExperimentHandler.java105
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/DeleteProjectHandler.java104
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/DeleteTraceHandler.java105
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/ImportTraceHandler.java123
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/NewExperimentHandler.java117
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/NewProjectHandler.java105
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/OpenExperimentHandler.java100
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/OpenProjectHandler.java95
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/OpenTraceHandler.java75
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/RefreshHandler.java98
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/RenameExperimentHandler.java75
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/RenameProjectHandler.java93
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/RenameTraceHandler.java75
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/SelectTracesHandler.java105
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/handlers/TraceErrorHandler.java61
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/model/ILTTngProjectTreeNode.java41
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/model/LTTngExperimentFolderNode.java130
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/model/LTTngExperimentNode.java125
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/model/LTTngProjectContentProvider.java52
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/model/LTTngProjectLabelProvider.java140
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/model/LTTngProjectNode.java200
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/model/LTTngProjectRoot.java99
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/model/LTTngProjectTreeNode.java82
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/model/LTTngTraceFolderNode.java127
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/model/LTTngTraceNode.java69
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/resources/Messages.java33
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/resources/ResourcesView.java565
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/resources/evProcessor/AbsResourcesTRangeUpdate.java305
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/resources/evProcessor/ResourcesAfterUpdateHandlers.java68
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/resources/evProcessor/ResourcesBeforeUpdateHandlers.java374
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/resources/evProcessor/ResourcesEventToHandlerFactory.java165
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/resources/evProcessor/ResourcesFinishUpdateHandler.java64
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/resources/messages.properties26
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/resources/model/ResourceContainer.java230
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/resources/model/ResourceModelFactory.java52
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/StatisticsView.java657
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/evProcessor/AbstractStatsEventHandler.java243
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/evProcessor/StatsModeChangeHandler.java44
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/evProcessor/StatsModeEndHandler.java46
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/evProcessor/StatsTimeCountHandlerFactory.java137
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/evProcessor/StatsTimeCountHandlers.java179
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/Statistics.java22
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/StatisticsTreeNode.java215
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/statistics/model/StatisticsTreeRootFactory.java73
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/timeframe/SpinnerGroup.java321
-rw-r--r--lttng/org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/timeframe/TimeFrameView.java380
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/.classpath7
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/.options3
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/.project28
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/META-INF/MANIFEST.MF27
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/about.html26
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/build.properties6
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/plugin.properties3
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/LTTngCorePlugin.java83
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/LttngException.java14
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/LttngFactory.java34
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/TraceDebug.java151
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/control/LttngCoreProviderFactory.java33
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/control/LttngSyntheticEventProvider.java476
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/event/LttngEvent.java182
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/event/LttngEventContent.java265
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/event/LttngEventField.java63
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/event/LttngEventReference.java88
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/event/LttngEventSource.java65
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/event/LttngEventType.java87
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/event/LttngLocation.java138
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/event/LttngSyntheticEvent.java308
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/event/LttngTimestamp.java161
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/model/ILTTngTreeNode.java119
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/model/LTTngTreeNode.java68
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/model/LTTngTreeNodeGeneric.java352
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/request/ILttngSyntEventRequest.java96
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/request/IRequestStatusListener.java39
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/request/LttngBaseEventRequest.java135
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/request/LttngSyntEventRequest.java196
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/request/RequestCompletedSignal.java18
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/request/RequestEventDispatcher.java95
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/request/RequestEventDispatcherToFact.java150
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/request/RequestStartedSignal.java18
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/signal/ILttExperimentSelectedListener.java39
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/signal/StateExperimentListener.java44
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/LttngStateException.java85
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/StateDataRequest.java220
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/StateStrings.java653
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/evProcessor/AbsEventToHandlerResolver.java207
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/evProcessor/EventProcessorProxy.java95
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/evProcessor/IBaseEventProcessor.java27
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/evProcessor/IEventToHandlerResolver.java34
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/evProcessor/ILttngEventProcessor.java36
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/evProcessor/ITransEventProcessor.java37
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/evProcessor/state/AbsStateProcessing.java209
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/evProcessor/state/AbsStateUpdate.java251
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/evProcessor/state/StateEventToHandlerFactory.java184
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/evProcessor/state/StateUpdateHandlers.java1543
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/experiment/IStateExperimentManager.java83
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/experiment/StateExperimentManager.java448
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/experiment/StateManagerFactory.java155
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/model/LTTngCPUState.java178
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/model/LttngBdevState.java89
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/model/LttngExecutionState.java152
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/model/LttngIRQState.java85
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/model/LttngProcessState.java490
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/model/LttngSoftIRQState.java114
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/model/LttngTraceState.java583
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/model/LttngTrapState.java86
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/model/StateModelFactory.java60
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/resource/ILTTngStateResource.java102
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/resource/ILttngStateContext.java71
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/resource/LTTngStateResource.java95
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/trace/IStateTraceManager.java87
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/trace/StateTraceManager.java521
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/trace/LTTngTextTrace.java519
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/trace/LTTngTrace.java984
-rw-r--r--lttng/org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/trace/LTTngTraceVersion.java156
-rw-r--r--lttng/org.eclipse.linuxtools.tmf-feature/.project17
-rw-r--r--lttng/org.eclipse.linuxtools.tmf-feature/build.properties3
-rw-r--r--lttng/org.eclipse.linuxtools.tmf-feature/compile.org.eclipse.linuxtools.tmf-feature.xml7
-rw-r--r--lttng/org.eclipse.linuxtools.tmf-feature/epl-v10.html256
-rw-r--r--lttng/org.eclipse.linuxtools.tmf-feature/feature.properties118
-rw-r--r--lttng/org.eclipse.linuxtools.tmf-feature/feature.xml41
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.doc/.project (renamed from rpm/org.eclipse.linuxtools.rpm.doc/.project)2
-rwxr-xr-xlttng/org.eclipse.linuxtools.tmf.doc/models/TMF-2 Architecture.pdfbin0 -> 307475 bytes
-rwxr-xr-xlttng/org.eclipse.linuxtools.tmf.doc/models/TMF-3 Event.pdfbin0 -> 185375 bytes
-rwxr-xr-xlttng/org.eclipse.linuxtools.tmf.doc/models/TMF-4 Trace.pdfbin0 -> 173272 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.test-feature/.project17
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.test-feature/build.properties4
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.test-feature/epl-v10.html256
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.test-feature/feature.properties112
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.test-feature/feature.xml40
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/.classpath8
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/.project28
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/META-INF/MANIFEST.MF13
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/build.properties8
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/plugin.properties3
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/AllTmfCoreTests.java38
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/TmfCorePluginTest.java67
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/TmfCoreTestPlugin.java80
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/component/AllTests.java17
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/component/TmfEventProviderTest.java244
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/component/TmfProviderManagerTest.java321
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/AllTests.java26
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventContentTest.java282
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventFieldTest.java200
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventReferenceTest.java150
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventSourceTest.java144
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventTest.java203
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventTypeTest.java203
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfTimeRangeTest.java222
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfTimestampTest.java420
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfTraceEventTest.java135
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/experiment/AllTests.java19
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/experiment/TmfExperimentTest.java669
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/experiment/TmfMultiTraceExperimentTest.java640
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/AllTests.java22
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfCoalescedDataRequestTest.java412
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfCoalescedEventRequestTest.java620
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfDataRequestTest.java317
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfEventRequestTest.java337
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfRequestExecutorTest.java116
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/AllTests.java21
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfCheckpointTest.java182
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfContextTest.java236
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfExperimentTest.java657
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfLocationTest.java262
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfTraceTest.java706
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/CreateTestFiles.java111
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/component/TmfClientStub.java41
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/component/TmfDataProviderStub.java79
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/component/TmfEventProviderStub.java80
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/component/TmfSyntheticEventProviderStub.java89
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/event/TmfEventContentStub.java59
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/event/TmfEventTypeStub.java28
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/event/TmfSyntheticEventStub.java30
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/request/TmfDataRequestStub.java60
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/request/TmfEventRequestStub.java60
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/trace/TmfEventParserStub.java116
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/trace/TmfTraceStub.java179
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/test.xml77
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/testfiles/A-Test-10Kbin0 -> 643257 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/testfiles/E-Test-10Kbin0 -> 643257 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/testfiles/O-Test-10Kbin0 -> 643257 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.tests/testfiles/R-Test-10Kbin0 -> 643257 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui.tests/.classpath8
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui.tests/.project28
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui.tests/META-INF/MANIFEST.MF14
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui.tests/build.properties8
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui.tests/plugin.properties3
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui.tests/plugin.xml17
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui.tests/src/org/eclipse/linuxtools/tmf/ui/tests/TmfUITestPlugin.java77
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui.tests/test.xml54
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui.tests/widgetStubs/org/eclipse/linuxtools/tmf/ui/widgets/timeAnalysis/test/stub/adaption/TsfImplProvider.java120
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui.tests/widgetStubs/org/eclipse/linuxtools/tmf/ui/widgets/timeAnalysis/test/stub/model/EventImpl.java82
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui.tests/widgetStubs/org/eclipse/linuxtools/tmf/ui/widgets/timeAnalysis/test/stub/model/TraceImpl.java103
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui.tests/widgetStubs/org/eclipse/linuxtools/tmf/ui/widgets/timeAnalysis/test/stub/model/TraceModelImplFactory.java235
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui.tests/widgetStubs/org/eclipse/linuxtools/tmf/ui/widgets/timeAnalysis/test/stub/views/TsfTraceAnalysisView.java703
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/.classpath7
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/.project28
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/META-INF/MANIFEST.MF20
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/about.html26
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/build.properties7
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/icons/events_view.gifbin0 -> 97 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/icons/filter_items.gifbin0 -> 220 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/icons/home_nav.gifbin0 -> 583 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/icons/next_event.gifbin0 -> 556 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/icons/next_item.gifbin0 -> 345 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/icons/prev_event.gifbin0 -> 554 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/icons/prev_item.gifbin0 -> 339 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/icons/project_view.gifbin0 -> 144 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/icons/synced.gifbin0 -> 160 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/icons/zoomin_nav.gifbin0 -> 560 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/icons/zoomout_nav.gifbin0 -> 560 bytes
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/plugin.properties3
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/TmfUiPlugin.java82
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/ITmfViewer.java23
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/TmfViewerFactory.java38
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/GridUtil.java45
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/ITimeAnalysisViewer.java167
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/ITmfTimeFilterSelectionListener.java19
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/ITmfTimeScaleSelectionListener.java24
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/ITmfTimeSelectionListener.java24
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/Messages.java54
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/TmfTimeAnalysisProvider.java327
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/TmfTimeAnalysisViewer.java836
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/TmfTimeFilterSelectionEvent.java39
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/TmfTimeScaleSelectionEvent.java79
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/TmfTimeSelectionEvent.java49
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/dialogs/TmfTimeFilterDialog.java214
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/dialogs/TmfTimeLegend.java293
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/messages.properties39
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/model/ITimeEvent.java30
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/model/ITmfTimeAnalysisEntry.java30
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/model/TimeEvent.java32
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/widgets/ITimeDataProvider.java68
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/widgets/PlainSelection.java65
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/widgets/TimeScaleCtrl.java787
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/widgets/TmfTimeStatesCtrl.java2214
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/widgets/TmfTimeTipHandler.java244
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/widgets/TraceColorScheme.java378
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/widgets/TraceCtrl.java67
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/timeAnalysis/widgets/Utils.java538
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/TmfEventsView.java350
-rw-r--r--lttng/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/TmfView.java72
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/.classpath7
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/.options8
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/.project28
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/ChangeLog3
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/META-INF/MANIFEST.MF19
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/about.html26
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/build.properties6
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/plugin.properties3
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/TmfCorePlugin.java82
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/Tracer.java152
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/ITmfComponent.java43
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/ITmfDataProvider.java35
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfComponent.java80
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfDataProvider.java356
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfEventProvider.java64
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfProviderManager.java109
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfData.java25
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfEvent.java193
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfEventContent.java169
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfEventField.java123
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfEventReference.java90
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfEventSource.java90
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfEventType.java147
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfNoSuchFieldException.java30
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfTimeRange.java139
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfTimestamp.java306
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfTraceEvent.java147
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java655
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentCheckpoint.java91
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentContext.java149
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentLocation.java46
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/parser/ITmfEventParser.java33
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/ITmfDataRequest.java110
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/ITmfEventRequest.java30
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfCoalescedDataRequest.java165
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfCoalescedEventRequest.java167
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfDataRequest.java425
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfEventRequest.java120
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfRequestExecutor.java117
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/signal/TmfEndSynchSignal.java26
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/signal/TmfExperimentSelectedSignal.java40
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/signal/TmfExperimentUpdatedSignal.java51
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/signal/TmfRangeSynchSignal.java42
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/signal/TmfSignal.java48
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/signal/TmfSignalHandler.java29
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/signal/TmfSignalManager.java133
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/signal/TmfSignalTracer.java38
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/signal/TmfStartSynchSignal.java27
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/signal/TmfTimeSynchSignal.java43
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/signal/TmfTraceUpdatedSignal.java50
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/ITmfContext.java32
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/ITmfLocation.java28
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/ITmfTrace.java80
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/TmfCheckpoint.java124
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/TmfContext.java116
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/TmfLocation.java88
-rw-r--r--lttng/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/TmfTrace.java367
-rw-r--r--rpm/.classpath7
-rw-r--r--rpm/.cvsignore1
-rw-r--r--rpm/.project28
-rw-r--r--rpm/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--rpm/.settings/org.eclipse.jdt.ui.prefs3
-rw-r--r--rpm/ChangeLog541
-rw-r--r--rpm/META-INF/MANIFEST.MF21
-rw-r--r--rpm/build.properties6
-rw-r--r--rpm/icons/changelog.gifbin0 -> 983 bytes
-rw-r--r--rpm/icons/rpm.gifbin0 -> 1019 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm-feature/.project6
-rw-r--r--rpm/org.eclipse.linuxtools.rpm-feature/ChangeLog51
-rw-r--r--rpm/org.eclipse.linuxtools.rpm-feature/about.html33
-rw-r--r--rpm/org.eclipse.linuxtools.rpm-feature/build.properties18
-rw-r--r--rpm/org.eclipse.linuxtools.rpm-feature/epl-v10.html256
-rw-r--r--rpm/org.eclipse.linuxtools.rpm-feature/feature.properties149
-rw-r--r--rpm/org.eclipse.linuxtools.rpm-feature/feature.xml45
-rw-r--r--rpm/org.eclipse.linuxtools.rpm-feature/license.html107
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/.classpath4
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/.settings/org.eclipse.jdt.core.prefs70
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/ChangeLog89
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/META-INF/MANIFEST.MF18
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/OSGI-INF/l10n/bundle.properties3
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/build.properties21
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/plugin.xml4
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/src/org/eclipse/linuxtools/rpm/core/internal/tests/RPMCoreInternalTestSuite.java23
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/src/org/eclipse/linuxtools/rpm/core/internal/tests/RPMProjectTest.java301
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/src/org/eclipse/linuxtools/rpm/core/internal/tests/SpecFileParserTest.java100
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/src/org/eclipse/linuxtools/rpm/core/tests/AllTests.java21
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/src/org/eclipse/linuxtools/rpm/core/tests/RPMCoreTestSuite.java23
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/src/org/eclipse/linuxtools/rpm/core/tests/RPMCoreTestsPlugin.java76
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/src/org/eclipse/linuxtools/rpm/core/tests/RPMProjectFactoryTest.java62
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/src/org/eclipse/linuxtools/rpm/core/tests/RPMProjectNatureTest.java21
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core.tests/src/org/eclipse/linuxtools/rpm/core/tests/RPMProjectTest.java176
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/.classpath2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/.settings/org.eclipse.jdt.core.prefs87
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/.settings/org.eclipse.jdt.ui.prefs54
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/ChangeLog291
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/META-INF/MANIFEST.MF13
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/about.html59
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/build.properties31
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/license.html81
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/plugin.properties14
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/plugin.xml19
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/IPatch.java57
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/IRPMConfiguration.java50
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/IRPMConstants.java28
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/IRPMProject.java157
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/ISourceRPM.java43
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/ISpecFile.java92
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/Messages.java31
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/RPMConfiguration.java (renamed from rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/internal/RPMConfiguration.java)42
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/RPMCoreInitializer.java36
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/RPMCorePlugin.java156
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/RPMExportDelta.java107
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/RPMProject.java200
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/RPMProjectFactory.java83
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/RPMProjectNature.java19
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/SourceRPM.java36
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/internal/Messages.java28
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/internal/Patch.java38
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/internal/RPMProject.java419
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/internal/SourceRPM.java33
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/internal/SpecFile.java207
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/internal/SpecFileParser.java657
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/rpm_strings.properties (renamed from rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/internal/rpm_strings.properties)11
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/utils/Diff.java56
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/utils/RPM.java103
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/utils/RPMBuild.java211
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/utils/RPMQuery.java120
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/utils/Utils.java157
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/utils/internal/Command.java74
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/utils/internal/ShellScript.java81
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.core/src/org/eclipse/linuxtools/rpm/core/utils/internal/StreamReaderThread.java38
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/ChangeLog87
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/about.html33
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/build.properties12
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/build.xml76
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/plugin.properties10
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/plugin.xml20
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/book.css206
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/hglegal2004.htm20
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/01_eclipse_rpm_prefs_page1.pngbin40730 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/02_eclipse_rpm_Cproject_create.pngbin33658 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/03_eclipse_rpm_Cproject_create.pngbin30803 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/04_eclipse_rpm_srpm_import.pngbin35803 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/05_eclipse_rpm_srpm_import.pngbin33381 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/06_eclipse_rpm_srpm_import.pngbin25763 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/07_eclipse_rpm_srpm_import.pngbin39097 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/07_eclipse_rpm_srpm_import_2.pngbin35680 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/08_eclipse_rpm_cproject_view.pngbin130370 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/09_eclipse_rpm_export.pngbin33881 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/10_eclipse_rpm_export.pngbin43965 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/11_eclipse_rpm_export.pngbin36026 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/12_eclipse_rpm_export.pngbin26201 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/13_eclipse_rpm_export.pngbin28644 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/14_eclipse_rpm_export.pngbin13860 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/15_eclipse_rpm_logviewer.pngbin19752 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/images/16_eclipse_rpm_logviewer.pngbin71055 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/notnetscape4.css14
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/raw/rpmguide/RPM_Plugin.htm317
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.doc/toc.xml7
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.releng/ChangeLog50
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.releng/build.properties80
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.releng/build.xml46
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.releng/customTargets.xml165
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.releng/maps/rpm.map4
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/ChangeLog70
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/META-INF/MANIFEST.MF5
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/about.html26
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/build.properties1
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/plugin.properties12
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/plugin.xml106
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/src/org/eclipse/linuxtools/rpm/rpmlint/Activator.java18
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/src/org/eclipse/linuxtools/rpm/rpmlint/actions/Messages.java2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/src/org/eclipse/linuxtools/rpm/rpmlint/actions/RunRpmlintAction.java92
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/src/org/eclipse/linuxtools/rpm/rpmlint/actions/ToggleRpmlintNatureAction.java45
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/src/org/eclipse/linuxtools/rpm/rpmlint/actions/messages.properties2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/src/org/eclipse/linuxtools/rpm/rpmlint/builder/RpmlintBuilder.java14
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/src/org/eclipse/linuxtools/rpm/rpmlint/builder/RpmlintMarkerVisitor.java6
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/src/org/eclipse/linuxtools/rpm/rpmlint/parser/RpmlintItem.java30
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/src/org/eclipse/linuxtools/rpm/rpmlint/parser/RpmlintParser.java77
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.rpmlint/src/org/eclipse/linuxtools/rpm/rpmlint/resolutions/RpmlintMarkerResolutionGenerator.java2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/.classpath7
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/.project28
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/ChangeLog3
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/META-INF/MANIFEST.MF14
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/RPM Editor.launch30
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/build.properties9
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/icons/alt_window_16.gifbin0 -> 637 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/icons/alt_window_32.gifbin0 -> 1192 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/icons/eclipse_lg.gifbin0 -> 12569 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/icons/open.gifbin0 -> 580 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/icons/perspective.gifbin0 -> 983 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/icons/rpm.gifbin0 -> 1019 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/icons/text.gifbin0 -> 577 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/org.eclipse.linuxtools.rpm.speceditor.rcp.product96
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/plugin.properties36
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/plugin.xml299
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/src/org/eclipse/linuxtools/rpm/speceditor/rcp/DelayedEventsProcessor.java110
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/src/org/eclipse/linuxtools/rpm/speceditor/rcp/PathEditorInput.java108
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/src/org/eclipse/linuxtools/rpm/speceditor/rcp/RPMEditorApplication.java43
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/src/org/eclipse/linuxtools/rpm/speceditor/rcp/RPMEditorPerspective.java24
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/src/org/eclipse/linuxtools/rpm/speceditor/rcp/RPMEditorWorkbenchAdvisor.java59
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/src/org/eclipse/linuxtools/rpm/speceditor/rcp/actions/OpenFileAction.java116
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/src/org/eclipse/linuxtools/rpm/speceditor/rcp/actions/RPMEditorActionBarAdvisor.java166
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.speceditor.rcp/templates/templates.xml96
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor-feature/ChangeLog31
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor-feature/feature.properties133
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor-feature/feature.xml2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor-feature/license.html102
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/.classpath7
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/.project6
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/ChangeLog137
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/META-INF/MANIFEST.MF9
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/about.html28
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/build-helper.xml152
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/build.properties20
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/doc/notices.html22
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/extract-markup.xsl9
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/generic.html55
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/Unti.xcfbin240040 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/rpmlint_quickfix.pngbin68669 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/settings_changelog.pngbin69746 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/settings_macros.pngbin68593 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/settings_rpmlint.pngbin53836 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/settings_rpms_details.pngbin81211 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/settings_rpms_generic.pngbin83169 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/settings_tasks.pngbin44515 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/settings_templates.pngbin139665 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/warnings_rpmlint.pngbin230637 -> 0 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/macro_settings.html28
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/package_settings.html26
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/rpmlint.html43
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/settings.html54
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/support.html27
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/toc.html39
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/plugin.properties12
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/plugin.xml16
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/src/org/eclipse/linuxtools/internal/rpm/ui/editor/doc/anttask/MediaWikiImageFetcher.java149
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/src/org/eclipse/linuxtools/internal/rpm/ui/editor/doc/anttask/tasks.properties11
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/toc.xml23
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/Configuring-Specfile-Editor-Settings.html212
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/General-Usage.html187
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/Installing.html68
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/SpecfileEditorReference-toc.xml21
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/SpecfileEditorReference.html51
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/Updating-This-Document.html54
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Screenshot-edittemplate.pngbin0 -> 25740 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Screenshot-taskscreenshot.pngbin0 -> 73853 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_enable_rpmlint.png (renamed from rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/enable_rpmlint.png)bin129551 -> 129551 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_generic.png (renamed from rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/generic.png)bin194908 -> 194908 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_macros_content.png (renamed from rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/macros_short.png)bin5034 -> 5034 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_macros_description.png (renamed from rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/macros_long.png)bin4573 -> 4573 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_new_from_template.png (renamed from rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/new_from_template.png)bin53602 -> 53602 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_new_wizard.png (renamed from rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/wizard.png)bin29257 -> 29257 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_problems_rpmlint.png (renamed from rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/problems_rpmlint.png)bin72383 -> 72383 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_rpmlint_fix_after.png (renamed from rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/rpmlint_fix_after.png)bin15655 -> 15655 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_rpmlint_fix_before.png (renamed from rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/html/images/rpmlint_fix_before.png)bin14117 -> 14117 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_rpmlint_quickfix.pngbin0 -> 34653 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_settings_changelog.pngbin0 -> 52024 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_settings_macros.pngbin0 -> 56154 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_settings_rpmlint.pngbin0 -> 35423 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_settings_rpms_details.pngbin0 -> 64277 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_settings_rpms_generic.pngbin0 -> 62302 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_settings_tasks.pngbin0 -> 35432 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.doc/userguide/images/Specfile_settings_templates.pngbin0 -> 100297 bytes
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.tests/ChangeLog37
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.tests/META-INF/MANIFEST.MF5
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.tests/plugin.properties2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.tests/src/org/eclipse/linuxtools/rpm/ui/editor/tests/RpmMacroProposalsListTest.java2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.tests/src/org/eclipse/linuxtools/rpm/ui/editor/tests/RpmPackageProposalsListTest.java2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.tests/src/org/eclipse/linuxtools/rpm/ui/editor/tests/SpecfileTestProject.java2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.tests/src/org/eclipse/linuxtools/rpm/ui/editor/tests/actions/ActionsAllTests.java1
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.tests/src/org/eclipse/linuxtools/rpm/ui/editor/tests/actions/SpecfileEditorShowOutlineActionDelegateTest.java37
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.tests/src/org/eclipse/linuxtools/rpm/ui/editor/tests/hyperlink/SourcesFileHyperlinkDetectorTest.java2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.tests/src/org/eclipse/linuxtools/rpm/ui/editor/tests/parser/SpecfileDefineTest.java33
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor.tests/src/org/eclipse/linuxtools/rpm/ui/editor/tests/scanners/SpecfilePackagesScannerTest.java85
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/.project6
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/.settings/org.moreunit.prefs3
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/ChangeLog428
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/META-INF/MANIFEST.MF5
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/about.html26
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/build.properties1
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/plugin.properties28
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/plugin.xml130
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/Activator.java19
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/Messages.java3
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/RpmMacroProposalsList.java4
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/RpmPackageBuildProposalsJob.java109
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/RpmPackageProposalsList.java19
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/RpmTags.java5
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileCompletionProcessor.java9
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileConfiguration.java50
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileDocumentProvider.java14
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileDoubleClickStrategy.java8
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileEditor.java137
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileFoldingStructureProvider.java2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileHover.java10
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileLog.java6
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileReconcilingStrategy.java3
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/UiUtils.java5
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/Utils.java121
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/actions/Messages.java9
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileChangelogFormatter.java16
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileChangelogParser.java3
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileEditorOrganizePatchesActionDelegate.java58
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileEditorShowOutlineActionDelegate.java43
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileEditorToggleCommentActionDelegate.java55
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/compare/Messages.java3
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/derived/AnnotationHover.java490
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/derived/HTMLTextPresenter.java2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/derived/LineBreakingReader.java2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/detectors/IStrictWordDetector.java2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/forms/MainPackagePage.java186
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/forms/SpecfileFormEditor.java31
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/hyperlink/Messages.java11
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/hyperlink/SourcesFileHyperlinkDetector.java26
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/hyperlink/SpecfileElementHyperlinkDetector.java3
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/hyperlink/URLHyperlinkWithMacroDetector.java4
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/hyperlink/messages.properties8
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/outline/Messages.java3
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/outline/SpecfileContentProvider.java6
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/outline/SpecfileLabelProvider.java4
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/parser/Messages.java2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SourceComparator.java5
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/parser/Specfile.java92
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileDefine.java14
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileElement.java40
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfilePackage.java66
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfilePackageContainer.java4
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileParser.java155
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileSection.java21
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileTag.java41
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/parser/messages.properties1
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/preferences/MacroProposalsPreferencePage.java6
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/preferences/MainPreferencePage.java64
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/preferences/Messages.java5
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/preferences/PreferenceConstants.java65
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/preferences/PreferenceInitializer.java87
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/preferences/RpmProposalsPreferencePage.java30
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/preferences/SpecTemplatePreferencePage.java12
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/preferences/TaskTagsPreferencePage.java3
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/preferences/messages.properties2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/rules/AuthorEmailRule.java16
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/rules/StringWithEndingRule.java1
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/rules/VersionReleaseRule.java16
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/scanners/SpecfileChangelogScanner.java7
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/scanners/SpecfilePackagesScanner.java17
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/scanners/SpecfilePartitionScanner.java41
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/scanners/SpecfileScanner.java13
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/wizards/Messages.java6
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/wizards/SpecfileNewWizard.java57
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/wizards/SpecfileNewWizardPage.java18
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/wizards/messages.properties3
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/.classpath4
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/.settings/org.eclipse.jdt.core.prefs87
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/.settings/org.eclipse.jdt.ui.prefs54
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/ChangeLog246
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/META-INF/MANIFEST.MF17
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/OSGI-INF/l10n/bundle.properties14
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/about.html59
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/build.properties31
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/plugin.xml120
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/IRPMUIConstants.java22
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/Messages.java14
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/RPMExportOperation.java143
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/RPMExportPage.java630
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/RPMExportPatchPage.java279
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/RPMExportWizard.java131
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/RPMNewProject.java93
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/RPMUIPlugin.java20
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/SRPMImportOperation.java31
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/SRPMImportPage.java62
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/SRPMImportWizard.java28
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/logviewer/LogReader.java117
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/logviewer/RPMLogViewer.java112
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/preferences/RPMPluginPreferencesPage.java295
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/propertypage/ChangelogPage.java46
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/propertypage/InstallScriptsPage.java58
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/propertypage/Messages.java16
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/propertypage/ProvidesPage.java46
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/propertypage/SpecFileHeaderPage.java44
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/propertypage/TargetPage.java56
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/propertypage/messages.properties11
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/rpm_strings.properties22
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui/src/org/eclipse/linuxtools/rpm/ui/util/ExceptionHandler.java137
-rw-r--r--rpm/plugin.xml60
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/Activator.java61
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/AuthorEmailRule.java126
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/ColorManager.java28
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/ISpecfileColorConstants.java20
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/IStrictWordDetector.java7
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/KeywordWordDetector.java17
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/MacroWordDetector.java17
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/NonRuleBasedDamagerRepairer.java138
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/PatchNumberDetector.java18
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SectionRule.java129
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileChangelogScanner.java62
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileConfiguration.java107
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileDocumentProvider.java21
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileDoubleClickStrategy.java112
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileEditor.java117
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileErrorHandler.java83
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileHover.java185
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfilePartitionScanner.java55
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfilePartitioner.java45
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileReconcilingStrategy.java50
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileScanner.java102
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileTagScanner.java25
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SpecfileWhitespaceDetector.java10
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/StringWithEndingRule.java94
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/SuffixNumberDetector.java18
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/TagRule.java31
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/TagWordDetector.java16
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/VersionReleaseRule.java155
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileChangelogAction.java (renamed from rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileChangelogAction.java)91
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileChangelogFormatter.java166
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileChangelogParser.java22
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/actions/SpecfileEditorOrganizePatchesActionDelegate.java32
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/outline/SpecfileContentOutlinePage.java97
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/outline/SpecfileContentProvider.java106
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/outline/SpecfileLabelProvider.java57
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SourceComparator.java20
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/Specfile.java249
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileDefine.java13
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileElement.java86
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileMacro.java5
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfilePackage.java65
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfilePackageContainer.java86
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileParseException.java49
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileParser.java491
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfilePatchMacro.java27
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfilePreamble.java5
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileSection.java34
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileSource.java102
-rw-r--r--rpm/src/org/eclipse/linuxtools/rpm/ui/editor/parser/SpecfileTag.java64
935 files changed, 116610 insertions, 8658 deletions
diff --git a/lttng/org.eclipse.linuxtools.lttng-feature/.project b/lttng/org.eclipse.linuxtools.lttng-feature/.project
new file mode 100644
index 0000000000..9ff62a9c20
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng-feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.lttng-feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/lttng/org.eclipse.linuxtools.lttng-feature/build.properties b/lttng/org.eclipse.linuxtools.lttng-feature/build.properties
new file mode 100644
index 0000000000..39b0777e50
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng-feature/build.properties
@@ -0,0 +1,4 @@
+bin.includes = feature.xml,\
+ epl-v10.html,\
+ feature.properties,\
+ license.html
diff --git a/lttng/org.eclipse.linuxtools.lttng-feature/compile.org.eclipse.linuxtools.lttng-feature.xml b/lttng/org.eclipse.linuxtools.lttng-feature/compile.org.eclipse.linuxtools.lttng-feature.xml
new file mode 100644
index 0000000000..dc361cd9a9
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng-feature/compile.org.eclipse.linuxtools.lttng-feature.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="Compile org.eclipse.linuxtools.lttng.feature" default="main">
+ <target name="main">
+ <ant antfile="build.xml" dir="../org.eclipse.linuxtools.lttng" target="build.jars"/>
+ <ant antfile="build.xml" dir="../org.eclipse.linuxtools.lttng.ui" target="build.jars"/>
+ <ant antfile="build.xml" dir="../org.eclipse.linuxtools.lttng.help" target="build.jars"/>
+ </target>
+</project>
diff --git a/lttng/org.eclipse.linuxtools.lttng-feature/epl-v10.html b/lttng/org.eclipse.linuxtools.lttng-feature/epl-v10.html
new file mode 100644
index 0000000000..9321f4082e
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng-feature/epl-v10.html
@@ -0,0 +1,256 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Eclipse Public License - Version 1.0</title>
+
+<style type="text/css">
+ body {
+ size: 8.5in 11.0in;
+ margin: 0.25in 0.5in 0.25in 0.5in;
+ tab-interval: 0.5in;
+ }
+ p {
+ margin-left: auto;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ p.list {
+ margin-left: 0.5in;
+ margin-top: 0.05em;
+ margin-bottom: 0.05em;
+ }
+ </style></head><body lang="EN-US">
+
+<p align="center"><b>Eclipse Public License - v 1.0</b></p>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+</body></html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng-feature/feature.properties b/lttng/org.eclipse.linuxtools.lttng-feature/feature.properties
new file mode 100644
index 0000000000..10861af9ca
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng-feature/feature.properties
@@ -0,0 +1,144 @@
+#*******************************************************************************
+# Copyright (c) 2009 Ericsson
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Ericsson - initial API and implementation
+#********************************************************************************
+
+featureName=Linux Tracing Toolkit Integration (LTTng) (Incubation)
+
+description=Plugins to integrate LTTng tools into the workbench.
+
+featureProvider=Eclipse Linux Tools
+
+copyright=Copyright 2009 Ericsson
+
+licenseURL=license.html
+
+license=\
+Eclipse Foundation Software User Agreement\n\
+April 14, 2010\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+ - Content may be structured and packaged into modules to facilitate delivering,\n\
+ extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+ plug-in fragments ("Fragments"), and features ("Features").\n\
+ - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+ in a directory named "plugins".\n\
+ - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+ Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+ Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+ numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+ - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+ named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+ - The top-level (root) directory\n\
+ - Plug-in and Fragment directories\n\
+ - Inside Plug-ins and Fragments packaged as JARs\n\
+ - Sub-directories of the directory named "src" of certain Plug-ins\n\
+ - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+ - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+ - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+ - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+ - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+ - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+ 1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+ the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+ extending or updating the functionality of an Eclipse-based product.\n\
+ 2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+ Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+ 3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+ govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+ Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+ with the Specification. Such Installable Software Agreement must inform the user of the\n\
+ terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+ the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+ indication of agreement by the user, the provisioning Technology will complete installation\n\
+ of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
diff --git a/lttng/org.eclipse.linuxtools.lttng-feature/feature.xml b/lttng/org.eclipse.linuxtools.lttng-feature/feature.xml
new file mode 100644
index 0000000000..ed0cdbc308
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng-feature/feature.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.linuxtools.lttng"
+ label="%featureName"
+ version="0.2.0.qualifier"
+ provider-name="%featureProvider"
+ os="linux">
+
+ <description>
+ %description
+ </description>
+
+ <copyright>
+ %copyright
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <requires>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.linuxtools.tmf" version="0.2.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.linuxtools.tmf.ui" version="0.2.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.linuxtools.lttng" version="0.2.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.linuxtools.lttng.jni" version="0.2.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.ui.ide"/>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.core.filesystem"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.linuxtools.lttng"
+ os="linux"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.lttng.ui"
+ os="linux"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.lttng.help"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.linuxtools.lttng.jni"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/lttng/org.eclipse.linuxtools.lttng-feature/license.html b/lttng/org.eclipse.linuxtools.lttng-feature/license.html
new file mode 100644
index 0000000000..c184ca36a9
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng-feature/license.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 14, 2010</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+ (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+ CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+ OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+ NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+ CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+ (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+ repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+ <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+ <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+ <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+ and/or Fragments associated with that Feature.</li>
+ <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+ <li>The top-level (root) directory</li>
+ <li>Plug-in and Fragment directories</li>
+ <li>Inside Plug-ins and Fragments packaged as JARs</li>
+ <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+ <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+ <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+ <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+ <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+ <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+ <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+ Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+ other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+ install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+ href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+ (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+ applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+ in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+ Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+ <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+ on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+ product.</li>
+ <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+ accessed and copied to the Target Machine.</li>
+ <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+ Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+ Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+ the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+ indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+ another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+ possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/lttng/org.eclipse.linuxtools.lttng.headless/.classpath b/lttng/org.eclipse.linuxtools.lttng.headless/.classpath
new file mode 100644
index 0000000000..64c5e31b7a
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.headless/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/lttng/org.eclipse.linuxtools.lttng.headless/.project b/lttng/org.eclipse.linuxtools.lttng.headless/.project
new file mode 100644
index 0000000000..c5c7240eec
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.headless/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.lttng.headless</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/lttng/org.eclipse.linuxtools.lttng.headless/.settings/org.eclipse.jdt.core.prefs b/lttng/org.eclipse.linuxtools.lttng.headless/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..6f7fc9aa37
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.headless/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Mon Mar 22 12:32:38 EDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/lttng/org.eclipse.linuxtools.lttng.headless/META-INF/MANIFEST.MF b/lttng/org.eclipse.linuxtools.lttng.headless/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..02daf55301
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.headless/META-INF/MANIFEST.MF
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Standalone LTTng application
+Bundle-SymbolicName: org.eclipse.linuxtools.lttng.headless
+Bundle-Version: 0.2.0.qualifier
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.linuxtools.lttng;bundle-version="0.2.0",
+ org.eclipse.linuxtools.lttng.jni;bundle-version="0.2.0",
+ org.eclipse.linuxtools.tmf;bundle-version="0.2.0"
diff --git a/lttng/org.eclipse.linuxtools.lttng.headless/build.properties b/lttng/org.eclipse.linuxtools.lttng.headless/build.properties
new file mode 100644
index 0000000000..34d2e4d2da
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.headless/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/lttng/org.eclipse.linuxtools.lttng.headless/src/JniTraceTest.java b/lttng/org.eclipse.linuxtools.lttng.headless/src/JniTraceTest.java
new file mode 100644
index 0000000000..8cd2a2fb23
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.headless/src/JniTraceTest.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+import java.util.ArrayList;
+import org.eclipse.linuxtools.lttng.jni.JniEvent;
+import org.eclipse.linuxtools.lttng.jni.JniMarkerField;
+import org.eclipse.linuxtools.lttng.jni.JniTrace;
+import org.eclipse.linuxtools.lttng.jni.common.JniTime;
+import org.eclipse.linuxtools.lttng.jni.factory.JniTraceFactory;
+
+
+public class JniTraceTest {
+
+ public static void main(String[] args) {
+
+ // Path of the trace
+ final String TRACE_PATH = "/home/william/trace-614601events-nolost-newformat";
+
+ // *** Change this to run several time over the same trace
+ final int NB_OF_PASS = 1;
+
+ // *** Change this to true to parse all the events in the trace
+ // Otherwise, events are just read
+ final boolean PARSE_EVENTS = true;
+
+
+ // Work variables
+ JniTrace tmptrace = null;
+ JniEvent tmpevent = null;
+ Long nbEvent = 0L;
+
+ try {
+ // Get the trace from the Factory...
+ // This assume the path is correct and that the correct version of the lib is installed
+ tmptrace = JniTraceFactory.getJniTrace(TRACE_PATH, false);
+
+ // Seek beginning
+ tmptrace.seekToTime(new JniTime(0L));
+
+ // Run up to "NB_OF_PASS" on the same trace
+ for (int x=0; x<NB_OF_PASS; x++ ){
+ tmpevent = tmptrace.readNextEvent();
+ nbEvent++;
+
+ while ( tmpevent != null ) {
+
+ // Parse event if asked
+ if ( PARSE_EVENTS ) {
+ ArrayList<JniMarkerField> tmpFields = tmpevent.getMarkersMap().get(tmpevent.getEventMarkerId()).getMarkerFieldsArrayList();
+ for ( int pos=0; pos<tmpFields.size(); pos++ ) {
+ @SuppressWarnings("unused")
+ Object newValue = tmpevent.parseFieldById(pos);
+
+ // *** Uncomment the following to print the parsed content
+ // Warning : this is VERY intensive
+ //if ( pos == (tmpFields.size() -1) ) {
+ // tmptrace.printC(tmpevent.getEventPtr().getLibraryId(), tmpFields.get(pos).getField() + ":" + newValue + " ");
+ //} else {
+ // tmptrace.printlnC(tmpevent.getEventPtr().getLibraryId(), tmpFields.get(pos).getField() + ":" + newValue + " ");
+ //}
+ }
+ }
+
+ tmpevent = tmptrace.readNextEvent();
+ nbEvent++;
+ }
+ }
+
+ System.out.println("NB Events read : " + nbEvent);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.headless/src/LttngTraceTest.java b/lttng/org.eclipse.linuxtools.lttng.headless/src/LttngTraceTest.java
new file mode 100644
index 0000000000..ae273ecd18
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.headless/src/LttngTraceTest.java
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+import org.eclipse.linuxtools.lttng.event.LttngEvent;
+import org.eclipse.linuxtools.lttng.event.LttngLocation;
+import org.eclipse.linuxtools.lttng.event.LttngTimestamp;
+import org.eclipse.linuxtools.lttng.trace.LTTngTextTrace;
+import org.eclipse.linuxtools.lttng.trace.LTTngTrace;
+import org.eclipse.linuxtools.tmf.trace.TmfContext;
+import org.eclipse.linuxtools.tmf.trace.TmfTrace;
+
+
+public class LttngTraceTest {
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) {
+
+ // Path of the trace
+ final String TRACE_PATH = "/home/francois/Desktop/Workspaces/LTTngTraces/trace_2GB";
+
+ // *** Change to true to use the "fake" LttngTextTrace instead of LTTngTrace
+ // To use this, you need a ".txt" trace.
+ // You can get it using LTTv with the command "lttv -m textDump -t /tmp/sometrace > mytrace.txt"
+ final boolean USE_TEXT_TRACE = false;
+
+ // *** Change this to run several time over the same trace
+ final int NB_OF_PASS = 1;
+
+ // *** Change this to true to parse all the events in the trace
+ // Otherwise, events are just read
+ final boolean PARSE_EVENTS = true;
+
+
+ // Work variables
+ TmfTrace<LttngEvent> tmptrace = null;
+ LttngEvent tmpevent = null;
+ TmfContext tmpContext = null;
+ Long nbEvent = 0L;
+
+ try {
+ // ** Use TextTrace (slow!) if it was asked
+ if ( USE_TEXT_TRACE ) {
+ tmptrace = new LTTngTextTrace(TRACE_PATH, true);
+ } else {
+ tmptrace = new LTTngTrace(TRACE_PATH, true, true);
+ }
+
+ LttngTimestamp tmpTime = new LttngTimestamp(0L);
+ tmpContext = new TmfContext(new LttngLocation(0L), 0);
+
+
+ long startTime = System.nanoTime();
+ System.out.println("Start: " + startTime);
+ for ( int nb=0; nb<NB_OF_PASS; nb++) {
+
+ // Seek to the beginning of the trace
+ tmpContext = tmptrace.seekEvent( tmpTime );
+ tmpevent = (LttngEvent)tmptrace.getNextEvent(tmpContext);
+
+ while ( tmpevent != null ) {
+ tmpevent = (LttngEvent)tmptrace.getNextEvent(tmpContext);
+
+ // Parse the events if it was asked
+ if ( (tmpevent != null) && (PARSE_EVENTS) ) {
+ tmpevent.getContent().getFields();
+
+ // *** Uncomment the following to print the parsed content
+ // Warning : this is VERY intensive
+ //
+// System.out.println(tmpevent.toString());
+ //System.out.println(testEvent.getContent().toString());
+ }
+
+ nbEvent++;
+ }
+ }
+
+ System.out.println("NB events : " + nbEvent);
+
+ long endTime = System.nanoTime();
+ long elapsed = endTime - startTime;
+ System.out.println("End: " + endTime);
+ System.out.println("Elapsed: " + elapsed + ", Average: " + (elapsed/nbEvent) + "ns/evt");
+
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.headless/src/TmfTraceTest.java b/lttng/org.eclipse.linuxtools.lttng.headless/src/TmfTraceTest.java
new file mode 100644
index 0000000000..be3636ed5b
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.headless/src/TmfTraceTest.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+import org.eclipse.linuxtools.lttng.event.LttngEvent;
+import org.eclipse.linuxtools.lttng.event.LttngTimestamp;
+import org.eclipse.linuxtools.lttng.trace.LTTngTrace;
+import org.eclipse.linuxtools.tmf.event.TmfEvent;
+import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
+import org.eclipse.linuxtools.tmf.experiment.TmfExperiment;
+import org.eclipse.linuxtools.tmf.request.TmfEventRequest;
+import org.eclipse.linuxtools.tmf.trace.ITmfTrace;
+
+public class TmfTraceTest extends TmfEventRequest<LttngEvent> {
+
+ @SuppressWarnings("unchecked")
+ public TmfTraceTest(Class<? extends TmfEvent> dataType, TmfTimeRange range, int nbRequested) {
+ super((Class<LttngEvent>)dataType, range, nbRequested, 1);
+ }
+
+
+ // Path of the trace
+ public static final String TRACE_PATH = "/home/william/trace-614601events-nolost-newformat";
+
+ // *** Change this to run several time over the same trace
+ public static final int NB_OF_PASS = 1;
+
+ // *** Change this to true to parse all the events in the trace
+ // Otherwise, events are just read
+ public final boolean PARSE_EVENTS = true;
+
+
+ // Work variables
+ public static int nbEvent = 0;
+ public static int nbPassDone = 0;
+ public static TmfExperiment<LttngEvent> fExperiment = null;
+
+
+ public static void main(String[] args) {
+
+ try {
+ // OUr experiment will contains ONE trace
+ ITmfTrace[] traces = new ITmfTrace[1];
+ traces[0] = new LTTngTrace(TRACE_PATH);
+ // Create our new experiment
+ fExperiment = new TmfExperiment<LttngEvent>(LttngEvent.class, "Headless", traces);
+
+
+ // Create a new time range from -infinity to +infinity
+ // That way, we will get "everything" in the trace
+ LttngTimestamp ts1 = new LttngTimestamp(Long.MIN_VALUE);
+ LttngTimestamp ts2 = new LttngTimestamp(Long.MAX_VALUE);
+ TmfTimeRange tmpRange = new TmfTimeRange(ts1, ts2);
+
+
+ // We will issue a request for each "pass".
+ // TMF will then process them synchonously
+ TmfTraceTest request = null;
+ for ( int x=0; x<NB_OF_PASS; x++ ) {
+ request = new TmfTraceTest(LttngEvent.class, tmpRange, Integer.MAX_VALUE );
+ fExperiment.sendRequest(request);
+ nbPassDone++;
+ }
+ }
+ catch (NullPointerException e) {
+ // Silently dismiss Null pointer exception
+ // The only way to "finish" the threads in TMF is by crashing them with null
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+
+ @Override
+ public void handleData() {
+ LttngEvent[] result = getData();
+
+ LttngEvent evt = (result.length > 0) ? result[0] : null;
+
+ if ( (evt != null) && (PARSE_EVENTS) ) {
+ ((LttngEvent) evt).getContent().getFields();
+
+ // *** Uncomment the following to print the parsed content
+ // Warning : this is VERY intensive
+ //
+ //System.out.println((LttngEvent)evt[0]);
+ //System.out.println(((LttngEvent)evt[0]).getContent());
+
+ nbEvent++;
+ }
+ }
+
+ @Override
+ public void handleCompleted() {
+ if ( nbPassDone >= NB_OF_PASS ) {
+ try {
+ System.out.println("Nb events : " + nbEvent);
+
+ fExperiment.sendRequest(null);
+ }
+ catch (Exception e) {}
+ }
+ }
+
+ @Override
+ public void handleSuccess() {
+ }
+
+ @Override
+ public void handleFailure() {
+ }
+
+ @Override
+ public void handleCancel() {
+ }
+
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/.project b/lttng/org.eclipse.linuxtools.lttng.help/.project
new file mode 100644
index 0000000000..ce3c28c448
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.lttng.help</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/META-INF/MANIFEST.MF b/lttng/org.eclipse.linuxtools.lttng.help/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..be067bf28d
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/META-INF/MANIFEST.MF
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.linuxtools.lttng.help; singleton:=true
+Bundle-Version: 0.2.0.qualifier
+Bundle-Vendor: %Bundle-Vendor
+Bundle-Localization: plugin
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/about.html b/lttng/org.eclipse.linuxtools.lttng.help/about.html
new file mode 100644
index 0000000000..23506a4bae
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/about.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>About</title>
+</head><body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body></html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/build.properties b/lttng/org.eclipse.linuxtools.lttng.help/build.properties
new file mode 100644
index 0000000000..583f9f5574
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/build.properties
@@ -0,0 +1,6 @@
+bin.includes = plugin.xml,\
+ META-INF/,\
+ html/,\
+ *.xml,\
+ about.html,\
+ plugin.properties
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/controlFlowView.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/controlFlowView.html
new file mode 100644
index 0000000000..6e4e635de0
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/controlFlowView.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Control Flow View</title>
+</head>
+
+<body>
+<h1>Control Flow View</h1>
+<p>It shows a process table of the traced system as well as the state transitions over time</p>
+<p>The dotted vertical lines in the state area represent "more information" i.e. There is at least one state that could not be represented in one pixel with the current scale</p>
+
+<p>The tool bar options from right to left are:</p>
+<dl>
+<dt>Home</dt>
+<dd>Reset the time scale to Default</dd>
+<p></p>
+<dt>Next Event</dt>
+<dd>Moves to the next event over the highlighted process</dd>
+<p></p>
+<dt>Previous Event</dt>
+<dd>Moves to the previous event over the highlighted process</dd>
+<p></p>
+<dt>Next Process</dt>
+<dd>Moves from the currently highlighted process to the next down in the list</dd>
+<p></p>
+<dt>Previous Process</dt>
+<dd>Moves from the currently highlighted process to the next up in the list</dd>
+<p></p>
+<dt>Zoom In</dt>
+<dd>Maintains the same width while reducing the visible time range in order to see a bigger representation of the states</dd>
+<p></p>
+<dt>Zoom Out</dt>
+<dd>Maintains the same width while increasing the visible time range in order to see a smaller representation of the states</dd>
+<p></p>
+<dt>Synchronize</dt>
+<dd><ul><li>Notify time selections to synchronized views</li><li>Listens and apply time selections from other synchronized views</li></ul></dd>
+
+</dl>
+<p>Note: Due to the large size of the LTTng traces, this view does not keep all state information in memory</p>
+<br> <img alt="Control Flow View" src="../images/controlFlowView2.png" width="1059" height="343">
+
+<p>Additional mouse controls</p>
+<dl>
+<dt>Mouse Scroll wheel</dt>
+<dd>
+<ul>
+<li>Forward - One Zoom In order per step</li>
+<li>Backward - One Zoom Out order per step</li>
+</ul>
+</dd>
+<dt>Mouse drag</dt>
+<dd>
+<ul>
+<li>States Area - Moves the time window in the direction of the drag keeping current scale</li>
+<li>Time Scale Area - Changes the time scale to the time range from the start to the end of the drag action</li>
+</ul>
+</dd>
+<dt>Mouse Hovering</dt>
+<dd>Hovering the mouse selection over a state will trigger a tooltip display with additional information,
+including the start and end times as well as the name of the state associated to the color</dd>
+
+</dl>
+<br> <img alt="Control Flow View hover tool tip" src="../images/controlFlowViewTooltip.png">
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/eventsView.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/eventsView.html
new file mode 100644
index 0000000000..5c4d51efc4
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/eventsView.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Events View</title>
+</head>
+
+<body>
+<h1>Events View</h1>
+<p>
+The Events views shows the basic experiment data in chronological order in
+a tabular format. The following fields are displayed:
+<ul>
+<li>Timestamp: the event timestamp
+<li>Source: the component that generated the event
+<li>Type: the event type
+<li>Reference: the trace that holds the event
+<li>Content: the raw event content
+</ul>
+<p>
+
+<br> <img alt="Events View" src="../images/eventsView.png">
+
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/experiment.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/experiment.html
new file mode 100644
index 0000000000..8fe1855f72
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/experiment.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Experiment</title>
+</head>
+
+<body>
+<h1>Experiment</h1>
+<p>
+An experiment consists in an arbitrary number of aggregated
+<a href="trace.html">LTTng traces</a>. In the degenerate case, an experiment
+can consist of a single trace.
+<p>
+The experiment provides a unified, time-ordered stream of the individual LTTng
+trace events.
+<p>
+Since the individual traces are likely to have unsynchronized clocks (or at
+least skewed with respect to each other), the experiment supports a timestamp
+adjustment scheme that synchronizes all the events against a common reference
+clock. This simplifies events correlation between traces.
+
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/lttng.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/lttng.html
new file mode 100644
index 0000000000..34d06b6c67
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/lttng.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Main Topic</title>
+</head>
+
+<body>
+<h1>LTTng</h1>
+LTTng is a kernel tracer for Linux. It helps tracking down performance issues and debugging problems involving multiple concurrent processes and threads.
+<br>Its trace analysis counterpart, The LTTng Eclipse plug-in, permits to analyze and show the traces gathered by LTTng.
+
+<br><br> <img alt="Lttng in Eclipse" src="../images/lttngEclipse1.png">
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/lttv.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/lttv.html
new file mode 100644
index 0000000000..b6b63dc7d7
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/lttv.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>LTTv</title>
+</head>
+
+<body>
+<h1>LTTv</h1>
+<p>LTTv is the former trace analysis counterpart of LTTng</p>
+<p>The LTTng Eclipse plug-in replaces LTTv by providing its analysis features in the Eclipse framework</p>
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/perspective.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/perspective.html
new file mode 100644
index 0000000000..b75a0097cc
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/perspective.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Perspective</title>
+</head>
+
+<body>
+<h1>LTTng perspective</h1>
+<p>
+The screenshot below shows the LTTng perspective. It holds the following specific views:
+<ul>
+<li><a href="projectView.html">Project View</a>
+<li><a href="controlFlowView.html">Control Flow View</a>
+<li><a href="resourcesView.html">Resources View</a>
+<li><a href="statisticsView.html">Statistics View</a>
+<li><a href="timeFrameView.html">Time Frame View</a>
+<li><a href="eventsView.html">Events View</a>
+<li>Histogram View (not implemented)
+<li>Control View (not implemented)
+</ul>
+<p>
+The analysis views are synchronized i.e. selecting a raw event, a timestamp, etc,
+will position the other views accordingly.
+<p>
+
+<br> <img alt="LTTng Perspective" src="../images/perspective.png">
+
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/projectView.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/projectView.html
new file mode 100644
index 0000000000..ce5a3d74f1
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/projectView.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Project View</title>
+</head>
+
+<body>
+<h1>Project View</h1>
+<p>
+The project view displays the LTTng projects of the current workspace.
+<p>
+Two folders are always present: <code>Traces</code> and <code>Experiments</code>.
+<p>
+<br> <img alt="Project View" src="../images/projectView.png">
+<p>
+<br>
+The <code>Traces</code> folder holds the set of traces available for experiments.
+Traces are imported in the LTTng project using an import wizard triggered by a
+context menu.
+<p>
+<u>Note</u>: An LTTng trace is actually a composite of multiple channel traces grouped
+under a folder. It is the <u>folder</u> that has to be imported.
+<p>
+<br> <img alt="Import Traces" src="../images/importTraces.png">
+<p>
+The <code>Experiment</code> folder holds the set of experiments of the project.
+Experiments are created from the <code>Experiment</code> context menu and are
+configured from the experiment's context menu.
+<p>
+<br> <img alt="Select Traces" src="../images/selectTraces.png">
+
+
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/resourcesView.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/resourcesView.html
new file mode 100644
index 0000000000..b85cdd329b
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/resourcesView.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Resources View</title>
+</head>
+
+<body>
+<h1>Resources View</h1>
+<p>It shows a resources list of the traced system as well as the state transitions over time</p>
+<p>The dotted vertical lines in the state area represent "more information" i.e. There is at least one state that could not be represented in one pixel with the current scale</p>
+
+<p>The tool bar options from right to left are:</p>
+<dl>
+<dt>Home</dt>
+<dd>Reset the time scale to Default</dd>
+<p></p>
+<dt>Next Event</dt>
+<dd>Moves to the next event over the highlighted process</dd>
+<p></p>
+<dt>Previous Event</dt>
+<dd>Moves to the previous event overt the highlighted process</dd>
+<p></p>
+<dt>Next Resource</dt>
+<dd>Moves from the currently highlighted resource to the next down in the list</dd>
+<p></p>
+<dt>Previous Resource</dt>
+<dd>Moves from the currently highlighted resource to the next up in the list</dd>
+<p></p>
+<dt>Zoom In</dt>
+<dd>Maintains the same width while reducing the visible time range in order to see a bigger representation of the states</dd>
+<p></p>
+<dt>Zoom Out</dt>
+<dd>Maintains the same width while increasing the visible time range in order to see a smaller representation of the states</dd>
+<p></p>
+<dt>Synchronize</dt>
+<dd><ul><li>Notify time selections to synchronized views</li><li>Listens and apply time selections from other synchronized views</li></ul></dd>
+
+</dl>
+<p>Note: Due to the large size of the Lttng traces, this view does not keep all state information in memory</p>
+<br> <img alt="Resources View" src="../images/resourcesView1.png">
+
+<p>Additional mouse controls</p>
+<dl>
+<dt>Mouse Scroll wheel</dt>
+<dd>
+<ul>
+<li>Forward - One Zoom In order per step</li>
+<li>Backward - One Zoom Out order per step</li>
+</ul>
+</dd>
+<dt>Mouse drag</dt>
+<dd>
+<ul>
+<li>States Area - Moves the time window in the direction of the drag keeping current scale</li>
+<li>Time Scale Area - Changes the time scale to the time range from the start to the end of the drag action</li>
+</ul>
+</dd>
+<dt>Mouse Hovering</dt>
+<dd>Hovering the mouse selection over a state will trigger a tooltip display with additional information,
+including the start and end times as well as the name of the state associated to the color</dd>
+
+</dl>
+<br> <img alt="Resources View hover tool tip" src="../images/resourcesTooltip.png">
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/statisticsView.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/statisticsView.html
new file mode 100644
index 0000000000..10d4af97ae
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/statisticsView.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Statistics View</title>
+</head>
+
+<body>
+<h1>Statistics View</h1>
+<p>This view represents in a tree format the multiple statistics related to the current <a href="experiment.html">Experiment</a>.</p>
+
+<br> <img alt="Statistics View" src="../images/statistics1.png">
+
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/timeFrameView.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/timeFrameView.html
new file mode 100644
index 0000000000..2ba3415b21
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/timeFrameView.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Time Frame View</title>
+</head>
+
+<body>
+<h1>Time Frame View</h1>
+<p>
+This view displays some general time characteristics about the selected
+experiment. All times are expressed in seconds (sec) and nanoseconds (ns).
+
+<ul>
+<li>Start Time
+<ul>
+<li>The start time of the interval of interest
+<li>Can take any value within the experiment time range
+<li>Initial value: the timestamp of the first event
+</ul>
+
+<li>End Time
+<ul>
+<li>The end time of the interval of interest
+<li>Can take any value within the experiment time range
+<li>Initial value: the timestamp of the last event
+</ul>
+
+<li>Interval
+<ul>
+<li>The interval length (End Time - Start Time)
+<li>Can take any value between 0 and the experiment time range
+<li>Initial value: the experiment time range
+</ul>
+
+<li>Current time
+<ul>
+<li>The currently selected time
+<li>Can take any value between Start Time and End Time
+<li>Initial value: Start Time
+</ul>
+
+</ul>
+
+The times can be modified, within their valid range, using the spinner buttons.
+Additionally, the Current Time can be modified by using the slider bar.
+<p>
+
+<br> <img alt="Time Frame View" src="../images/timeFrameView.png">
+
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/toc_concepts.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/toc_concepts.html
new file mode 100644
index 0000000000..2ff8888e2b
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/toc_concepts.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Concepts</title>
+</head>
+
+<body>
+<h1>Concepts</h1>
+ <ul>
+ <li><a href="toc_general.html"> General</a></li>
+ <li><a href="toc_userInterface.html"> User Interface</a></li>
+ </ul>
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/toc_general.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/toc_general.html
new file mode 100644
index 0000000000..6db0b7317e
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/toc_general.html
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>General</title>
+</head>
+
+<body>
+<h1>General</h1>
+<ul>
+ <li><a href="lttng.html"> LTTng</a></li>
+ <li><a href="lttv.html"> LTTv</a></li>
+ <li><a href="trace.html">Trace</a></li>
+ <li><a href="experiment.html">Experiment</a></li>
+</ul>
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/toc_userInterface.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/toc_userInterface.html
new file mode 100644
index 0000000000..e20dc3fd4b
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/toc_userInterface.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>User Interface</title>
+</head>
+
+<body>
+<h1>User Interface</h1>
+<ul>
+ <li><a href="perspective.html"> Perspective</a></li>
+ <li><a href="projectView.html"> Project View</a></li>
+ <li><a href="eventsView.html"> Events View</a></li>
+ <li><a href="timeFrameView.html"> Time Frame View</a></li>
+ <li><a href="controlFlowView.html"> Control Flow View</a></li>
+ <li><a href="resourcesView.html"> Resources View</a></li>
+ <li><a href="statisticsView.html"> Statistics View</a></li>
+</ul>
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/trace.html b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/trace.html
new file mode 100644
index 0000000000..40a957757e
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/concepts/trace.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Trace</title>
+</head>
+
+<body>
+<h1>Trace</h1>
+<p>
+Tracing is a technique used to understand what is going on in a system in
+order to debug or monitor it. A tracer is the software used for tracing.
+Tracing can be used to debug a wide range of bugs that are otherwise extremely
+challenging. These include, for example, performance problems in complex
+parallel systems or real-time systems.
+<p>
+Tracing is similar to logging: it consists in recording events that happen
+in a system. However, compared to logging, it usually records much lower-level
+events that occur much more frequently. Tracers must therefore be optimized
+to handle a lot of data while having a small impact on the system. Tracers
+typically generate thousands of events per second. They frequently contain
+millions of events and have sizes from many megabytes to tens of gigabytes.
+<p>
+Traces may include events from the operating system kernel (IRQ handler
+entry/exit, system call entry/exit, scheduling activity, network activity,
+etc). They may also include events from any application.
+<p>
+The list of events of a trace may be read manually like a log file, for the
+maximum level of detail. However, trace analyzers and viewers are available
+to produce graphs and statistics from this enormous amount of data. These
+programs must be specially designed to handle quickly the enormous amount of
+data traces contain.
+<p>
+In the case of LTTng, low tracing overhead is achieved by instrumenting the
+Linux kernel with a set of custom patches. The same set of patches can be
+used for both Linux kernel as well as user space (i.e application) tracing.
+<p>
+Refer to the <a href="http://lttng.org">LTTng Project</a> for more information
+on tracing and LTTng.
+<p>
+In the scope of the Linux Tools LTTng project, a trace is essentially a (very)
+large set of time-ordered LTTng events. The LTTng set of plugins accepts these
+traces and provides a number of standard views to analyze their contents
+either individually or through an <a href="experiment.html">experiment</a>.
+
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/install_lttng.html b/lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/install_lttng.html
new file mode 100644
index 0000000000..bb9d554047
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/install_lttng.html
@@ -0,0 +1,552 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
+ <TITLE></TITLE>
+ <META NAME="GENERATOR" CONTENT="OpenOffice.org 3.2 (Linux)">
+ <META NAME="CREATED" CONTENT="20091006;11250700">
+ <META NAME="CHANGEDBY" CONTENT="Francois Godin">
+ <META NAME="CHANGED" CONTENT="20100603;15264500">
+ <STYLE TYPE="text/css">
+ <!--
+ @page { margin: 2cm }
+ H1 { margin-bottom: 0.21cm }
+ H1.western { font-family: "Nimbus Sans L", sans-serif; font-size: 16pt }
+ H1.cjk { font-family: "Bitstream Vera Sans"; font-size: 16pt }
+ H1.ctl { font-family: "Bitstream Vera Sans"; font-size: 16pt }
+ H3 { margin-bottom: 0.21cm }
+ H3.western { font-family: "Nimbus Roman No9 L", serif }
+ A:link { so-language: zxx }
+ -->
+ </STYLE>
+</HEAD>
+<BODY LANG="en-CA" DIR="LTR">
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<H1 CLASS="western">Installing LTTv library for Eclipse LTTng plugin</H1>
+<P STYLE="margin-bottom: 0.21cm"><BR><BR>
+</P>
+<P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">This
+document describes how to install and configure the LTTv C-code
+library in order to load and parse LTTng traces with the Eclipse LTTng plugin. </FONT>
+</P>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<H3 CLASS="western">For the impatient</H3>
+<P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">For each trace format version (v2.3, v2.5 and/or v2.6) you want to process :</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">Download
+ LTTv application, from
+ <A HREF="http://git.dorsal.polymtl.ca/?p=liblttngtrace.git;a=summary">http://git.dorsal.polymtl.ca/?p=liblttngtrace.git;a=summary</A></FONT></P>
+ <LI><P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">Compile
+ it with the JNI support activated :</FONT></P>
+ <P STYLE="margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>./configure
+ --with-jni-interface &amp;&amp; make &amp;&amp; make install</I></FONT></FONT></P>
+ <LI><P STYLE="margin-bottom: 0cm"><FONT FACE="Nimbus Roman No9 L, serif">Start
+ Eclipse application making sure the library is in LD_LIBRARY_PATH.</FONT></P>
+</UL>
+<P STYLE="margin-bottom: 0cm"><BR></P>
+<P STYLE="text-indent: 1.27cm; margin-bottom: 0cm"><FONT FACE="Nimbus Roman No9 L, serif">
+Note: Unless you plan to process legacy traces, version 2.5 and 2.6 should be sufficient for most needs.</FONT>
+</P>
+<P STYLE="text-indent: 1.27cm; margin-bottom: 0cm"><FONT FACE="Nimbus Roman No9 L, serif">
+It didn't work? Please read “Installation steps” section. </FONT>
+</P>
+<P STYLE="text-indent: 1.27cm; margin-bottom: 0cm"><BR>
+</P>
+<P STYLE="margin-bottom: 0cm"><FONT FACE="Nimbus Roman No9 L, serif">
+Make sure you install the latest version last (currently v2.6).</FONT></P>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<H3 CLASS="western">Why a C library ?
+</H3>
+<P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">
+LTTng and LTTv are mostly coded in C (with some parts in even more evil stuff) so
+their functionalities are not directly available in Java. Also, for
+the sake of performance, it was decided to re-use the
+native, multi-platform C library for the low-level functions rather
+than re-implement them in Java. Also, the C library
+is under constant development and it would have been a bad idea to
+branch this one just yet.</FONT></P>
+<P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">
+So right now, the normal path for an event through LTTng would be the
+following :</FONT></P>
+<P STYLE="margin-left: 0.5cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><I>Linux
+Kernel -&gt; Trace Directory</I></FONT></P>
+<P STYLE="margin-left: 0.5cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><I>(Trace
+Directory read by) LTTv C Library -&gt; JNI (C side) -&gt; JNI (Java
+Side) -&gt; Eclipse LTTng Plugin</I></FONT></P>
+<P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">(Note
+that the kernel is only used to record at trace). </FONT>
+</P>
+<P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">For
+all these reasons, the LTTv C library and a JNI (Java Native
+Interface) is needed for java to process LTTng trace. The JNI itself,
+however, is already included in LTTv and it should be easy to build
+and to install (using this very installation guide). </FONT>
+</P>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<H3 CLASS="western">Installation steps
+</H3>
+<P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">First
+on all, we need to download and compile the source of the LTTv
+application, with the JNI support enabled. To do so, follow the 4 steps described in this section.</FONT>
+</P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><I><B>Note</B>
+: LTTv is responsible of handling the trace format for Eclipse.
+However, as the trace format changed overtime, you might need to
+compile several versions of LTTv if you plan to support multiple
+trace formats. Each “branch” of LTTv should tell you by its name
+which version of the LTTng trace it supports. If you did not generate
+a trace already, you might want to stick with the latest LTTv
+version, otherwise, it is recommended to compile all available versions
+(currently v2.3, v2.5 and v2.6). </I></FONT>
+</P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm; font-style: normal">
+<FONT FACE="Nimbus Roman No9 L, serif"><FONT COLOR="#ff950e"><SPAN STYLE="text-decoration: none"><B><SPAN STYLE="background: transparent">NOTE</SPAN></B></SPAN></FONT><SPAN STYLE="text-decoration: none"><B>:</B></SPAN>
+If you don't know which trace format you need, you may want to get all
+of them to support multiple versions of traces (2.5 and 2.6 are
+more or less mandatory). Just perform the following instructions for each
+trace format.</FONT></P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm; font-style: normal">
+<FONT FACE="Nimbus Roman No9 L, serif">In all case, make sure you
+install the latest version <i><u>last</u></i> (currently v2.6).</FONT></P>
+<P STYLE="margin-bottom: 0.21cm"><BR><BR>
+</P>
+<OL>
+ <LI><P STYLE="margin-bottom: 0.21cm; text-decoration: none"><FONT FACE="Nimbus Roman No9 L, serif"><I><B>Downloading
+ LTTv</B></I></FONT></P>
+</OL>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">There
+are actually three variants of the LTTv library available for download.</FONT></P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm; font-style: normal">
+<BR><BR>
+</P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">-
+<B>Beta JNI build (git) </B><FONT COLOR="#ff950e"><B>(PLEASE USE
+THIS)</B></FONT></FONT></P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">This
+is the very beta tree of LTTv that include the newest JNI changes. It
+is under constant development, so there might be some bugs left, but
+it contains the newer JNI interface, which is probably what you need.</FONT></P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">This
+is definitely what you should use. You can get it from :</FONT></P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><A HREF="http://git.dorsal.polymtl.ca/?p=liblttngtrace.git;a=summary"><FONT FACE="Nimbus Roman No9 L, serif"><I>http://git.dorsal.polymtl.ca/?p=liblttngtrace.git;a=summary</I></FONT></A></P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><SPAN STYLE="font-style: normal">
+Then, in the “</SPAN><I><B>heads</B></I>”<SPAN STYLE="font-style: normal"> section
+(below the “</SPAN><I><B>shortlog</B></I>”<SPAN STYLE="font-style: normal">section),
+click on the trace format that suits your need</SPAN> <SPAN STYLE="font-style: normal">.
+In the new download page, click the “</SPAN><I>snapshot</I>”<SPAN STYLE="font-style: normal"> link
+of the top entry (with a marker of the form 'traceformat-n.n') to download the corresponding archive.</SPAN></FONT></P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><BR><BR>
+</P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">-
+<B>Development build (git) </B></FONT>
+</P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">
+This is the release candidate of the LTTv application. It contains
+features that are under development or too experimental to make it to
+the main tree. It also includes the JNI interface that you need to
+use Eclipse; however, this branch could be a little late on the
+beta, so use at your own risk. </FONT>
+</P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">If
+you want to try, get it from :<BR></FONT></P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><A HREF="http://lttng.org/cgi-bin/gitweb.cgi?p=lttv.git;a=summary"><FONT FACE="Nimbus Roman No9 L, serif"><I>http://lttng.org/cgi-bin/gitweb.cgi?p=lttv.git;a=summary</I></FONT></A></P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><SPAN STYLE="font-style: normal">
+Then, in the “</SPAN><I><B>heads</B></I>”<SPAN STYLE="font-style: normal"> section
+(below the “</SPAN><I><B>shortlog</B></I>”<SPAN STYLE="font-style: normal"> and “</SPAN><I><B>tags</B></I>”<SPAN STYLE="font-style: normal">section),
+click on the trace format that suits your need</SPAN> <SPAN STYLE="font-style: normal">.
+In the new download page, click the “</SPAN><I>snapshot</I>”<SPAN STYLE="font-style: normal"> link
+of the top entry (with a marker of the form 'traceformat-n.n') to download the corresponding archive.</SPAN></FONT></P>
+
+
+
+
+
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><SPAN STYLE="font-style: normal">Then,
+in the “</SPAN><I>head</I>” <SPAN STYLE="font-style: normal">section,
+click on the traceformat that suite your need</SPAN> <SPAN STYLE="font-style: normal">and
+then choose “</SPAN><I>snapshot</I>” <SPAN STYLE="font-style: normal">to
+download its archive.</SPAN></FONT></P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><BR><BR>
+</P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">-
+<B>Stable release</B></FONT></P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">This
+is the main LTTv tree. Actually missing the JNI fonctionnality but
+this might be added soon. Until this is done, you should stick with
+development version. </FONT>
+</P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">If
+you want to try it anyways, you can get it from
+</FONT><A HREF="http://www.lttng.org/?q=node/3"><FONT FACE="Nimbus Roman No9 L, serif"><I>http://www.lttng.org/?q=node/3</I></FONT></A></P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">Then,
+select “<I>Download the latest lttv-[version].tar.gz</I>” in the
+menu and pick the most recent (usually on top) release.</FONT></P>
+<P STYLE="margin-left: 1.22cm; margin-bottom: 0.21cm"><BR><BR>
+</P>
+<P STYLE="margin-bottom: 0.21cm"><BR><BR>
+</P>
+<OL START=2>
+ <LI><P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><I><B>Decompressing
+ the archive(s)</B></I></FONT></P>
+</OL>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">You
+now need to archive files where you want them and to uncompress them.
+You need to do this for each LTTv version you downloaded.</FONT></P>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">The
+way to do it in command line would be something like : </FONT>
+</P>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>mv
+archive_name.tar.gz /where/you/want</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>tar
+-xvzf archive_name.tar.gz</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.21cm"><BR><BR>
+</P>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">As
+example, this is what I would do for myself :</FONT></P>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>mv
+liblttngtrace-bcaf565bbfb26d0ac7e4647528230feb61443a01.tar.gz
+/home/william</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>tar
+-xvzf liblttngtrace-bcaf565bbfb26d0ac7e4647528230feb61443a01.tar.gz</I></FONT></FONT></P>
+<P STYLE="margin-bottom: 0.21cm"><BR><BR>
+</P>
+<OL START=3>
+ <LI><P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><I><B>Configuration</B></I></FONT></P>
+</OL>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.21cm; font-style: normal">
+<FONT FACE="Nimbus Roman No9 L, serif"><B>At First</B></FONT></P>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">Enter
+one of the uncompressed directory, you should use a command like : </FONT>
+</P>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>cd
+liblttngtrace</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.24cm; margin-bottom: 0cm"><FONT FACE="Nimbus Roman No9 L, serif">(Of
+course “<I>liblttngtrace</I>” need to be the name of the
+uncompressed directory).</FONT></P>
+<P STYLE="margin-left: 1.24cm; margin-bottom: 0cm"><BR>
+</P>
+<P STYLE="margin-left: 1.24cm; margin-bottom: 0cm"><BR>
+</P>
+<P STYLE="margin-left: 1.24cm; margin-bottom: 0cm"><FONT FACE="Nimbus Roman No9 L, serif">If
+you are using any “Development build” (first or second choice of
+the download section), before doing anything, you need to do the
+following : </FONT>
+</P>
+<P STYLE="margin-left: 1.24cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>./autogen.sh</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.24cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">You
+can safetly ignore any errors you get there, we will take care of
+them next. </FONT>
+</P>
+<P STYLE="margin-bottom: 0.21cm"><BR><BR>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm; font-style: normal">
+<FONT FACE="Nimbus Roman No9 L, serif"><B>Dependencies</B></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">To
+build LTTv, the folowing dependencies need to be met. A (very)
+incomplete list is the following. Most distribution should have most
+of this stuff, except maybe gtk-dev, glib-dev and libopt that are
+probably missing on most systems.</FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">Install
+the missing dependencies using your distribution package manager and
+then jump to the “<I>configure script</I>” step.</FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><B>libtool
+(and its dependencies like autotools, autoconf, automake and such...)</B></FONT></FONT></P>
+<P STYLE="margin-left: 2.01cm; margin-bottom: 0.21cm; font-weight: normal">
+<FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Debian/Ubuntu
+: libtool)</I></FONT></FONT></P>
+<P STYLE="margin-left: 2.01cm; margin-bottom: 0.21cm; font-weight: normal">
+<FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Fedora/Redhat
+: libtool-2)</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><B>gcc
+3.2 (or better)</B></FONT></FONT></P>
+<P STYLE="margin-left: 1.98cm; margin-bottom: 0.21cm; font-weight: normal">
+<FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Debian/Ubuntu
+: gcc-3.2)</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.98cm; margin-bottom: 0.21cm; font-weight: normal">
+<FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Fedora/Redhat
+: gcc-3.2)</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><B>gtk
+2.4 development libraries (or better)</B></FONT></FONT></P>
+<P STYLE="margin-left: 2.04cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Debian/Ubuntu
+: libgtk2.0, libgtk2.0-dev)</I></FONT></FONT></P>
+<P STYLE="margin-left: 2.04cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Fedora/Redhat
+: gtk2, gtk2-devel)</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><B>glib
+2.4 development libraries (or better)</B></FONT></FONT></P>
+<P STYLE="margin-left: 2.09cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Debian/Ubuntu
+: libglib2.0-0, libglib2.0-dev)</I></FONT></FONT></P>
+<P STYLE="margin-left: 2.09cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Fedora/Redhat
+: glib2, glib2-devel)</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><B>libpopt
+development libraries</B></FONT></FONT></P>
+<P STYLE="margin-left: 2.17cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Debian/Ubuntu
+: libpopt0, libpopt-dev)</I></FONT></FONT></P>
+<P STYLE="margin-left: 2.17cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Fedora/Redhat
+: popt)</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><B>libpango
+development libraries</B></FONT></FONT></P>
+<P STYLE="margin-left: 2.12cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Debian
+: libpango1.0, libpango1.0-dev)</I></FONT></FONT></P>
+<P STYLE="margin-left: 2.12cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Fedora
+: pango, pango-devel)</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><B>libc6
+development librairies </B></FONT></FONT>
+</P>
+<P STYLE="margin-left: 2.09cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Debian
+: libc6, libc6-dev)</I></FONT></FONT></P>
+<P STYLE="margin-left: 2.09cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT SIZE=2><I>(Fedora
+: glibc, glibc)<BR></I></FONT></FONT><BR><BR>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><B>Configure
+step</B></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">LTTv
+have several compile options that you can turn on/off. To see a full
+list, type the following : </FONT>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>./configure
+–help<BR></I></FONT></FONT><BR><BR>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">The
+following option is <U><B>essential</B></U> for Eclipse to work :</FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>--with-jni-interface
+Build JNI interface between C and java. Need java include files.
+[default=no]<BR></I></FONT></FONT><BR><BR>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">The
+following options may be useful for you as well : </FONT>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>1)
+--prefix=PREFIX install architecture-independent files in PREFIX
+[/usr/local] </I></FONT></FONT>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>2)
+--with-lttv Build whole LTTV system, as opposed to only the trace
+reading library [default=yes]</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>3)
+--with-java-jdk=DIR Use java jdk from DIR. Ex : $JAVA_HOME.</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><BR><BR>
+</P>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">1)
+Change PREFIX to something in your home if you don't have root access
+on your system.</FONT></P>
+<P STYLE="margin-left: 1.85cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">Use
+a flag like : --prefix=/home/your_name/a_directory</FONT></P>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">2)
+Unless you need LTTv Gtk gui, you better turn off turn off LTTv UI
+compilation. </FONT>
+</P>
+<P STYLE="margin-left: 1.85cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">Use
+the flag : --without-lttv</FONT></P>
+<P STYLE="margin-left: 1.27cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">3)
+On some (most?) system, configure will need you to indicate where it
+can find the java JDK to compile the JNI. </FONT>
+</P>
+<P STYLE="margin-left: 1.85cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">Use
+a flag like : --with-java-jdk=/where/java-jdk/is</FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><BR><BR>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">As
+example, here is what I would use :</FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>./configure
+--prefix=/home/william/apps --without-lttv
+--with-java-jdk=/usr/local/jdk1.6.0_13 --with-jni-interface </I></FONT></FONT>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><BR><BR>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">Fix
+any missing dependencies errors and move to the next step.</FONT></P>
+<P STYLE="margin-bottom: 0.21cm"><BR><BR>
+</P>
+<OL START=4>
+ <LI><P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><I><B>Build
+ and install</B></I></FONT></P>
+</OL>
+<P STYLE="margin-left: 1.32cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">Now
+that program is correctly configured, we can try to build it. Type
+the following command (this can take a while) :</FONT></P>
+<P STYLE="margin-left: 1.32cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>make</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.32cm; margin-bottom: 0.21cm"><BR><BR>
+</P>
+<P STYLE="margin-left: 1.32cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">When
+it is over, make sure there were no error during the compilation and
+issue the following command : </FONT>
+</P>
+<P STYLE="margin-left: 1.32cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>sudo
+make install</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.32cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">OR
+if you don't have root acess AND changed the --prefix=PREFIX flag
+during the configuration :</FONT></P>
+<P STYLE="margin-left: 1.32cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>make
+install </I></FONT></FONT>
+</P>
+<P STYLE="margin-left: 1.32cm; margin-bottom: 0.21cm"><BR><BR>
+</P>
+<P STYLE="margin-left: 1.32cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">LTTv
+should now be installed on your system. </FONT>
+</P>
+<P STYLE="margin-left: 1.32cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">Get
+back to the step <I>3) “Configuration” </I>and do the same
+operations for all the LTTv version that were downloaded to install
+them on your system. </FONT>
+</P>
+<P STYLE="margin-bottom: 0.21cm"><BR><BR>
+</P>
+<OL START=5>
+ <LI><P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><I><B>Set
+ library path</B></I></FONT></P>
+</OL>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0cm"><FONT FACE="Nimbus Roman No9 L, serif">Now
+that LTTv is installed, we need to make sure Eclipse can find its
+library easily. The best way to do so is to ajust the
+LD_LIBRARY_PATH. </FONT>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0cm"><BR>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0cm"><FONT FACE="Nimbus Roman No9 L, serif">The
+following should work on most system if your shell is BASH or KSH <U>(in
+case of doubt try this one)</U> :</FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>export
+LD_LIBRARY_PATH=”/usr/local/lib:$LD_LIBRARY_PATH”</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">OR
+if you changed the --prefix=PREFIX flag during the configuration :</FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>export
+LD_LIBRARY_PATH=”/where_you_set_prefix/lib:$LD_LIBRARY_PATH”</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0cm"><BR>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0cm"><BR>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0cm"><FONT FACE="Nimbus Roman No9 L, serif">If
+you are using a CSH or TCSH shell, this might be what you need : </FONT>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>setenv
+LD_LIBRARY_PATH /usr/local/lib\:$LD_LIBRARY_PATH</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">OR
+if you changed the --prefix=PREFIX flag during the configuration :</FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>setenv
+LD_LIBRARY_PATH /where_you_set_prefix/lib\:$LD_LIBRARY_PATH</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0cm"><BR>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0cm"><FONT FACE="Nimbus Roman No9 L, serif">If
+you have root access on the system, if can be a good idea to run
+ldconfig as well :</FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>sudo
+ldconfig</I></FONT></FONT></P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0cm"><BR>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0cm"><FONT FACE="Nimbus Roman No9 L, serif"><I><U>Note
+these settings will disapears on logout</U>, you mght consider adding
+this to your autostart or setting it system wide! </I></FONT>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0cm"><BR>
+</P>
+<P STYLE="margin-left: 1.3cm; margin-bottom: 0cm"><FONT FACE="Nimbus Roman No9 L, serif">You
+should be ready to start Eclipse now.</FONT></P>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<H3 CLASS="western">FAQ</H3>
+<OL>
+ <LI><P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><I>When
+ trying to start LTTng in Eclipse, I end up with the following
+ exception :<BR></I><FONT COLOR="#000080"><FONT FACE="Monospace"><FONT SIZE=2><I><U>org.eclipse.linuxtools.lttng.trace.LTTngTraceException</U></I></FONT></FONT></FONT><FONT COLOR="#ff0000"><FONT FACE="Monospace"><FONT SIZE=2><I>:
+ Failed to initialize library! Is the trace version supported?</I></FONT></FONT></FONT></FONT></P>
+ <P ALIGN=LEFT><FONT COLOR="#ff0000"><FONT FACE="Monospace"><FONT SIZE=2>Make
+ sure you have the correct LTTv library compiled. (openTrace)</FONT></FONT></FONT></P>
+ <P STYLE="margin-top: 0.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><FONT COLOR="#000000"><FONT SIZE=3><SPAN STYLE="font-style: normal">This
+ mean you do not have the correct LTTv library available on your
+ system. Go back to the section </SPAN></FONT></FONT><FONT COLOR="#000000"><FONT SIZE=3><I>&quot;1)
+ – Download”</I></FONT></FONT><FONT COLOR="#000000"> </FONT><FONT COLOR="#000000"><FONT SIZE=3><SPAN STYLE="font-style: normal">and
+ make sure you downloaded (and installed) the correct version of LTTv
+ to support the format of trace you want to read. As example, if your
+ trace is of LTTng format 2.3, you will need to download and install
+ the archive marked as “traceformat-2.3”.</SPAN></FONT></FONT></FONT></P>
+</OL>
+<P STYLE="margin-bottom: 0.21cm"><BR><BR>
+</P>
+<OL START=2>
+ <LI><P STYLE="margin-top: 0.3cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><I>When
+ trying to import a trace, I get an error message and I have one of
+ the following exception in the Eclipse Console :
+ <BR></I><FONT COLOR="#000080"><FONT FACE="Monospace"><FONT SIZE=2><I><U>org.eclipse.linuxtools.lttng.trace.LTTngTraceException</U></I></FONT></FONT></FONT><FONT COLOR="#ff0000"><FONT FACE="Monospace"><FONT SIZE=2><I>:
+ ERROR : Unrecognized/unsupported trace version.</I></FONT></FONT></FONT></FONT></P>
+ <P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">OR</FONT></P>
+ <P STYLE="margin-bottom: 0.21cm"><FONT FACE="Monospace"><FONT SIZE=2><I><FONT COLOR="#000080"><U>org.eclipse.linuxtools.lttng.trace.LTTngTraceException</U></FONT><FONT COLOR="#ff0000">:
+ ERROR : Call to JniTraceVersion() failed.</FONT></I></FONT></FONT></P>
+ <P STYLE="margin-top: 0.2cm; margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">In
+ that case, either your LTTv version is very old and does not
+ recognize your trace version or you are using a very new trace
+ version that is not yet supported. You probably want to check if
+ there is a newer version of LTTv that you could use. Please refer to
+ the section <I>&quot;1) – Download” for the correct links.</I></FONT></P>
+</OL>
+<P STYLE="margin-bottom: 0.21cm"><BR><BR>
+</P>
+<OL START=3>
+ <LI><P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif"><I>When
+ trying to start LTTng in Eclipse, I end up with the following
+ exception :<BR></I><FONT COLOR="#ff0000"><FONT FACE="Monospace"><FONT SIZE=2><I>Exception
+ in thread &quot;main&quot; java.lang.UnsatisfiedLinkError: no
+ lttvtraceread in java.library.path</I></FONT></FONT></FONT></FONT></P>
+ <P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">This
+ basically mean that Java can not find the C library you just
+ compile. To find any C library, java would normally need to be
+ passed a flag like “-Djava.library.path=/somewhere/lib” but
+ there seems to be a bug in Eclipse about it, as defined here :
+ <A HREF="https://bugs.eclipse.org/bugs/show_bug.cgi?id=290068">https://bugs.eclipse.org/bugs/show_bug.cgi?id=290068</A></FONT></P>
+ <P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">Therefore,
+ the workaround is to make sure to pass a correct LD_LIBRARY_PATH to
+ Eclipse (see section above about “<I>Set library path</I>”). The
+ best way to make sure the flag is corerctly passed is to add it in
+ front of the command that is called to start Eclipse, on the command
+ line or in the desktop shortcut itself. </FONT>
+ </P>
+ <P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">As
+ example, here is the shortcut I use to call Eclipse :</FONT></P>
+ <P STYLE="margin-bottom: 0.3cm"><FONT FACE="Arial, sans-serif"><FONT SIZE=2><I>export
+ LD_LIBRARY_PATH=&quot;/usr/local/lib&quot;;
+ /usr/local/eclipse/eclipse</I></FONT></FONT></P>
+</OL>
+<P STYLE="margin-bottom: 0.3cm"><BR><BR>
+</P>
+<OL START=4>
+ <LI><P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">I
+ did what you said in 1) but I'm still getting the same error
+ <I>:<BR></I><FONT COLOR="#ff0000"><FONT FACE="Monospace"><FONT SIZE=2><I>Exception
+ in thread &quot;main&quot; java.lang.UnsatisfiedLinkError: no
+ lttvtraceread in java.library.path</I></FONT></FONT></FONT></FONT></P>
+ <P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">If
+ your LD_LIBRARY_PATH is correct, then the only reason why you might
+ get this error is that you did not compile the JNI interface inside
+ LTTv. <BR>Go back to “<I>Installation steps</I>” and make sure
+ you used the development version of LTTv and that you compiled it
+ with the --<I>with-jni-interface</I> <SPAN STYLE="font-style: normal">flag</SPAN>.</FONT></P>
+</OL>
+<P STYLE="margin-bottom: 0.21cm"><BR><BR>
+</P>
+<OL START=5>
+ <LI><P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">When
+ I run LTTng in Eclipse, at some point, I am getting an error like
+ this :</FONT></P>
+ <P STYLE="margin-bottom: 0cm"><FONT COLOR="#ff0000"><FONT FACE="Monospace"><FONT SIZE=2><I>Exception
+ in thread &quot;main&quot; java.lang.Error: Unresolved compilation
+ problem: </I></FONT></FONT></FONT>
+ </P>
+</OL>
+<P ALIGN=LEFT STYLE="margin-left: 1.3cm; margin-bottom: 0cm"><FONT COLOR="#ff0000"><FONT FACE="Monospace"><FONT SIZE=2><I>The
+method ltt_someFunction() is undefined for the type JniXYZ</I></FONT></FONT></FONT></P>
+<OL START=6>
+ <P STYLE="margin-bottom: 0.21cm"><FONT FACE="Nimbus Roman No9 L, serif">This
+ may happen if the LTTv version you are using is not recent enought.
+ Make sure you are using the latest development version, recompile
+ the latest one if needed. If this doesn't work, make sure you use
+ the “Beta” JNI Build, as described in “<I>Download</I>”
+ section. If nothing work, please submit a bug report. </FONT>
+ </P>
+</OL>
+<P STYLE="margin-bottom: 0.21cm"><BR><BR>
+</P>
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/samples.html b/lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/samples.html
new file mode 100644
index 0000000000..2a8442a3f0
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/samples.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
+ <TITLE>Main Topic</TITLE>
+ <META NAME="GENERATOR" CONTENT="OpenOffice.org 3.1 (Linux)">
+ <META NAME="CREATED" CONTENT="0;0">
+ <META NAME="CHANGED" CONTENT="20091008;17334500">
+</HEAD>
+<BODY LANG="en-CA" DIR="LTR">
+<H1>Samples</H1>
+<P>The following LTTng traces are provided as reference examples.
+</P>
+<P>Each trace as its own feature and complexity. The size given
+refers to the size of the trace once "untarred", the actual tar size
+should be around 10 times smaller.
+</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm"><A HREF="http://dev.eclipse.org/viewsvn/index.cgi/lttng/trunk/org.eclipse.linuxtools.lttng.tests/traceset/trace-1021events-nolost-1cpu.tar.gz?root=Technology_LINUXTOOLS&view=co">trace-1021events-nolost-1cpu
+ (2.1MB)</A>
+ </P>
+ <P STYLE="margin-bottom: 0cm">Very small trace made from a single
+ marker. Recorded under a VirtualBox system with 1 processor.</P>
+ <P STYLE="margin-bottom: 0cm"></P>
+ <LI><P STYLE="margin-bottom: 0cm"><A HREF="http://dev.eclipse.org/viewsvn/index.cgi/lttng/trunk/org.eclipse.linuxtools.lttng.tests/traceset/trace-399747events-nolost-1cpu.tar.gz?root=Technology_LINUXTOOLS&view=co">trace-399747events-nolost-1cpu
+ (28MB)</A>
+ </P>
+ <P STYLE="margin-bottom: 0cm">Trace of several markers, that has no
+ lost event. Recorded under VirtualBox with 1 processor.</P>
+ <P STYLE="margin-bottom: 0cm"></P>
+ <LI><P STYLE="margin-bottom: 0cm"><A HREF="http://dev.eclipse.org/viewsvn/index.cgi/lttng/trunk/org.eclipse.linuxtools.lttng.tests/traceset/trace-618339events-1293lost-1cpu.tar.gz?root=Technology_LINUXTOOLS&view=co">trace-618339events-1293lost-1cpu
+ (11MB)</A></P>
+ <P STYLE="margin-bottom: 0cm">Trace of several markers, with some
+ lost events. Recorded under VirtualBox with 1 processor.</P>
+ <P STYLE="margin-bottom: 0cm"></P>
+ <LI><P STYLE="margin-bottom: 0cm"><A HREF="http://dev.eclipse.org/viewsvn/index.cgi/lttng/trunk/org.eclipse.linuxtools.lttng.tests/traceset/trace-698650events_3029lost-8CPU.tar.gz?root=Technology_LINUXTOOLS&view=co">trace-698650events_3029lost-8CPU
+ (41MB)</A> <FONT COLOR="#ff0000"><B>(Multi-cpu is currently
+ experimental)</B></FONT></P>
+ <P STYLE="margin-bottom: 0cm">Trace of several markers, with some
+ lost events. Recorded on a native system with 8 processors.</P>
+</UL>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<P STYLE="margin-bottom: 0cm">The smaller is the trace, the faster it
+will load in Eclipse. All traces should load correctly, but only the
+first one and the third one were extensively tested.
+</P>
+<P STYLE="margin-bottom: 0cm">Note that recording of a new trace
+directly in Eclipse is currently work under progress. If you would
+like to record your own trace, you need to install LTTng kernel
+patches and LTTv application.
+</P>
+<P STYLE="margin-bottom: 0cm">You can get more information about that
+at <A HREF="http://www.lttng.org/">http://www.lttng.org</A>.
+</P>
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/starting.html b/lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/starting.html
new file mode 100644
index 0000000000..81d3ff8131
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/starting.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Getting Started</title>
+</head>
+
+<body>
+<h1>Getting Started</h1>
+<p>The following steps will help you start the analysis of an LTTng example trace</p>
+
+<ol>
+ <li>See introduction to <a href="lttng.html">LTTng </a> under the
+ concepts section.</li>
+ <li>Obtain LTTng traces to the file system <br>
+ Link References to Examples are available from section <a href="samples.html">Samples</a></li>
+ <li>Open the <a href="../concepts/lttng.html">LTTng
+ perspective</a> from the Eclipse menu <br>
+ Windows -> Open <a href="../concepts/perspective.html">Perspective</a>
+ -> Other -> LTTng</li>
+ <li>Add a New LTTng Project<br>
+ Right click from the Project View</li>
+ <li>Import LTTng traces from the file system to the LTTng project<br>
+ Right click on the Traces folder and select the location</li>
+ <li>Add a new <a href="../concepts/experiment.html">Experiment</a><br>
+ Right click on the Experiments Folder</li>
+ <li>Add Traces to the Experiment<br>
+ Right click on an Experiment folder</li>
+ <li>Populate the LTTng views with the Experiment data<br>
+ Double click on an Experiment folder</li>
+</ol>
+
+<br> <img alt="Lttng in Eclipse" src="../images/lttngEclipse1.png">
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/toc_gettingStarted.html b/lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/toc_gettingStarted.html
new file mode 100644
index 0000000000..08e6c27e9d
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/gettingstarted/toc_gettingStarted.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Getting Started</title>
+</head>
+
+<body>
+<h1>Getting Started</h1>
+<ul>
+ <li><a href="starting.html">General</a></li>
+ <li><a href="samples.html">Samples</a></li>
+ <li><a href="install_lttng.html">Installing the LTTng parsing library</a></li>
+</ul>
+
+More information can be found on our <a href="http://wiki.eclipse.org/Linux_Tools_Project/LTTng">wiki page</a>.
+
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowView.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowView.png
new file mode 100644
index 0000000000..df76a2678e
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowView.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowView2.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowView2.png
new file mode 100644
index 0000000000..348a893f68
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowView2.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowView3.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowView3.png
new file mode 100644
index 0000000000..6ab23d6ba1
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowView3.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowViewTooltip.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowViewTooltip.png
new file mode 100644
index 0000000000..167e1e33e3
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/controlFlowViewTooltip.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/eventsView.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/eventsView.png
new file mode 100644
index 0000000000..4c3f00a58d
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/eventsView.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/eventsView1.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/eventsView1.png
new file mode 100644
index 0000000000..3a36490f0d
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/eventsView1.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/eventsView2.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/eventsView2.png
new file mode 100644
index 0000000000..91bc479f64
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/eventsView2.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/garland_logo.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/garland_logo.png
new file mode 100644
index 0000000000..4be116ac52
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/garland_logo.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/importTraces.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/importTraces.png
new file mode 100644
index 0000000000..ec572f9817
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/importTraces.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/lttngEclipse1.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/lttngEclipse1.png
new file mode 100644
index 0000000000..cff3fffe6a
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/lttngEclipse1.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/lttngEclipse2.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/lttngEclipse2.png
new file mode 100644
index 0000000000..cff3fffe6a
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/lttngEclipse2.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/perspective.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/perspective.png
new file mode 100644
index 0000000000..41235f8139
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/perspective.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/projectView.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/projectView.png
new file mode 100644
index 0000000000..93fc313101
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/projectView.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesTooltip.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesTooltip.png
new file mode 100644
index 0000000000..355f4c29eb
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesTooltip.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesView1.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesView1.png
new file mode 100644
index 0000000000..735a4e222f
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesView1.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesView2.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesView2.png
new file mode 100644
index 0000000000..740a2822a3
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesView2.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesView3.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesView3.png
new file mode 100644
index 0000000000..a63379a3b0
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/resourcesView3.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/selectTraces.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/selectTraces.png
new file mode 100644
index 0000000000..88e16cc4ff
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/selectTraces.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/statistics1.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/statistics1.png
new file mode 100644
index 0000000000..d7fca497ab
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/statistics1.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/timeFrameView.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/timeFrameView.png
new file mode 100644
index 0000000000..fc0bb81d46
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/timeFrameView.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/timeFrameView1.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/timeFrameView1.png
new file mode 100644
index 0000000000..f967ed4373
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/timeFrameView1.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/images/timeFrameView2.png b/lttng/org.eclipse.linuxtools.lttng.help/html/images/timeFrameView2.png
new file mode 100644
index 0000000000..eda4b10548
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/images/timeFrameView2.png
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/limitations/limitations.html b/lttng/org.eclipse.linuxtools.lttng.help/html/limitations/limitations.html
new file mode 100644
index 0000000000..8edbaddb38
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/limitations/limitations.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
+ <TITLE>Limitations</TITLE>
+ <META NAME="GENERATOR" CONTENT="OpenOffice.org 3.1 (Linux)">
+ <META NAME="CREATED" CONTENT="0;0">
+ <META NAME="CHANGED" CONTENT="20091008;18193600">
+</HEAD>
+<BODY LANG="en-CA" DIR="LTR">
+<H1>Limitations</H1>
+<P>The current implementation is still under heavy development and
+some important features are still missing.<BR>Here is a list of the
+known bugs and missing features that are worked on.</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm"><B>Thread issues affect
+ performance</B></P>
+ <P STYLE="margin-bottom: 0cm; font-weight: normal">The multi-thread
+ access to the traces is mostly turned off for now so the user might
+ experiment a very long load time when opening a trace and/or
+ zooming. Of course, this is especially true for big trace.</P>
+ <P STYLE="margin-bottom: 0cm"><SPAN STYLE="font-weight: normal">In
+ the future, the traces with be opened and indexed asynchronously,
+ with the result of greatly improved performance.</SPAN></P>
+</UL>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm"><B>No support for individual traces</B></P>
+ <P STYLE="margin-bottom: 0cm">The code for loading and parsing an individual
+ trace (not part of an experiment) is currently disabled. As a workaround,
+ just create an experiment with the single trace you want to analyze.
+ </P>
+</UL>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm"><B>One trace per experiment is
+ currently supported</B></P>
+ <P STYLE="margin-bottom: 0cm">Work to be able to merge and index
+ several traces into a single experiment have not being completed
+ yet.
+ </P>
+ <P STYLE="margin-bottom: 0cm">In the future, it will be possible to
+ process several traces at once and to compare them in the views.</P>
+</UL>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm"><B>Time Frame View</B></P>
+ <P STYLE="margin-bottom: 0cm">In some cases, the End Time of the Time
+ Frame view is not set correctly (symptom: the nanoseconds are identical
+ to the Start Time nanoseconds and the Interval nanoseconds = 0).
+ <P STYLE="margin-bottom: 0cm">
+ To set it properly, just spin up the End Time seconds field.
+</UL>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm"><B>Simultaneous data requests</B></P>
+ <P STYLE="margin-bottom: 0cm">All views are currently working on a
+ standalone basis. Therefore, time selection synchronization among
+ views does not trigger simultaneous data requests, which heavily
+ hurts the performance of the application.
+ </P>
+ <P STYLE="margin-bottom: 0cm">In the future, data request will be
+ centralized in the application, resulting in better response time in
+ and between views.</P>
+</UL>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm"><B>No trace recording capability
+ in Eclipse yet</B></P>
+ <P STYLE="margin-bottom: 0cm">It is not currently possible to record
+ a new trace directly in Eclipse, an user that would like to record a
+ new trace would need to use external tools, like LTTv.</P>
+ <P STYLE="margin-bottom: 0cm">In the future, a &ldquo;Control view&rdquo;
+ will be provided for the user to allow him to easily a new trace
+ inside Eclipse. It should also be possible to start the recording on
+ a remote host from that view.</P>
+</UL>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm"><B>Experimental Multi-CPU support</B></P>
+ <P STYLE="margin-bottom: 0cm">Although working, some more work need
+ to be done on trace that handle multiple processors. It is reputed
+ to work already but this feature is mostly untested for now.</P>
+ <P STYLE="margin-bottom: 0cm">In the future, multi-CPU should be
+ supported and work as well as uni-CPU traces.</P>
+</UL>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm"><B>Experimental 64 bits and/or non
+ x86 architecture implementation</B></P>
+ <P STYLE="margin-bottom: 0cm">The code used to read and parse files
+ have not been extensively tested on 64 bits and was not tested at
+ all on architecture different than x86 computer. The code is
+ believed to work on a broad horizon of architecture but this cannot
+ be certified for now.</P>
+ <P STYLE="margin-bottom: 0cm">In the future, all x86 (32 and 64
+ bits) as well as all PPC (32 and 64 bits) should work and possibly
+ some (all?) models of SPARC.
+ </P>
+</UL>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm"><B>Missing filters and ordering on
+ all views</B></P>
+ <P STYLE="margin-bottom: 0cm">There is currently no way to filter
+ events following some criteria or to dynamically sort the different
+ fields.
+ </P>
+ <P STYLE="margin-bottom: 0cm">In the future, both should be
+ implemented.
+ </P>
+</UL>
+<P STYLE="margin-bottom: 0cm"><BR>
+</P>
+<UL>
+ <LI><P STYLE="margin-bottom: 0cm"><B>Some views missing and/or need
+ more work</B></P>
+ <P>Some more views (&ldquo;Control&rdquo;, &ldquo;Histogram&rdquo;,
+ etc...) are currently missing but planned in the Eclipse
+ implementation and some others (&ldquo;Statistics&rdquo;) are
+ working but need more work to be brought were they need to be.<BR>In
+ the future, all views provided by LTTv will be supported in Eclipse
+ and more!</P>
+</UL>
+<P><BR><BR>
+</P>
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/limitations/toc_limitations.html b/lttng/org.eclipse.linuxtools.lttng.help/html/limitations/toc_limitations.html
new file mode 100644
index 0000000000..39ab9efb19
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/limitations/toc_limitations.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Limitations</title>
+</head>
+
+<body>
+<h1>Limitations</h1>
+<ul>
+ <li><a href="limitations.html"> Limitations</a></li>
+</ul>
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/reference/references.html b/lttng/org.eclipse.linuxtools.lttng.help/html/reference/references.html
new file mode 100644
index 0000000000..b8b30cb659
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/reference/references.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
+ <TITLE>References</TITLE>
+ <META NAME="GENERATOR" CONTENT="OpenOffice.org 3.1 (Linux)">
+ <META NAME="CREATED" CONTENT="0;0">
+ <META NAME="CHANGED" CONTENT="20091008;18210200">
+</HEAD>
+<BODY LANG="en-CA" DIR="LTR">
+<H1>References</H1>
+<UL>
+ <LI><A HREF="http://www.eclipse.org/linuxtools/projectPages/lttng/">Linux
+ Tools Project - LTTng Integration</A></LI>
+
+ <LI><A HREF="http://www.lttng.org/">LTTng
+ Project</A></LI>
+
+ <LI><A HREF="http://lttng.org/cgi-bin/gitweb.cgi?p=lttv.git;a=blob_plain;f=LTTngManual.html">LTTng
+ Manual</A> </LI>
+
+</UL>
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/reference/toc_reference.html b/lttng/org.eclipse.linuxtools.lttng.help/html/reference/toc_reference.html
new file mode 100644
index 0000000000..621428cb7f
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/reference/toc_reference.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Reference</title>
+</head>
+
+<body>
+<h1>Reference</h1>
+<ul>
+ <li><a href="references.html"> References</a></li>
+</ul>
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/html/toc.html b/lttng/org.eclipse.linuxtools.lttng.help/html/toc.html
new file mode 100644
index 0000000000..b182144636
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/html/toc.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <title>Table of Contents</title>
+</head>
+
+<body>
+<h1>Table of Contents</h1>
+<ul>
+ <li><a href="concepts/toc_concepts.html"> Concepts</a>
+ <ul>
+ <li><a href="concepts/toc_general.html"> General </a>
+ <ul>
+ <li><a href="concepts/lttng.html"> LTTng</a></li>
+ <li><a href="concepts/lttv.html"> LTTv</a></li>
+ <li><a href="concepts/trace.html">Trace</a></li>
+ <li><a href="concepts/experiment.html">Experiment</a></li>
+ </ul>
+ </li>
+ <li><a href="concepts/toc_userInterface.html"> User Interface </a>
+ <ul>
+ <li><a href="concepts/perspective.html"> Perspective</a></li>
+ <li><a href="concepts/projectView.html"> Project View</a></li>
+ <li><a href="concepts/eventsView.html"> Events View</a></li>
+ <li><a href="concepts/timeFrameView.html"> Time Frame View</a></li>
+ <li><a href="concepts/controlFlowView.html"> Control Flow
+ View</a></li>
+ <li><a href="concepts/resourcesView.html"> Resources View</a></li>
+ <li><a href="concepts/statisticsView.html"> Statistics View</a></li>
+ </ul>
+ </li>
+ </ul>
+
+ </li>
+ <li><a href="gettingstarted/toc_gettingStarted.html"> Getting Started</a>
+ <ul>
+ <li><a href="gettingstarted/starting.html"> General</a></li>
+ <li><a href="gettingstarted/samples.html"> Samples</a></li>
+ <li><a href="gettingstarted/install_lttng.html">Installing the LTTng parsing library</a></li>
+ </ul>
+ </li>
+
+ <li><a href="limitations/toc_limitations.html"> Limitations </a>
+ <ul>
+ <li><a href="limitations/limitations.html"> Limitations</a></li>
+ </ul>
+ </li>
+
+ <li><a href="reference/toc_reference.html"> Reference </a>
+ <ul>
+ <li><a href="reference/references.html"> References</a></li>
+ </ul>
+ </li>
+</ul>
+</body>
+</html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/plugin.properties b/lttng/org.eclipse.linuxtools.lttng.help/plugin.properties
new file mode 100644
index 0000000000..4c3833d9c7
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/plugin.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.linuxtools.lttng.help
+Bundle-Vendor = Eclipse Linux Tools
+Bundle-Name = Linux Tracing Toolkit (LTTng) Help (Incubation) \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/plugin.xml b/lttng/org.eclipse.linuxtools.lttng.help/plugin.xml
new file mode 100644
index 0000000000..32c88bf32f
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/plugin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+ <extension
+ point="org.eclipse.help.toc">
+ <toc
+ file="toc.xml"
+ primary="true">
+ </toc>
+ <toc
+ file="tocconcepts.xml">
+ </toc>
+ <toc
+ file="tocgettingstarted.xml">
+ </toc>
+ <toc
+ file="tocreference.xml">
+ </toc>
+ <toc
+ file="toclimitations.xml">
+ </toc>
+ </extension>
+
+</plugin>
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/toc.xml b/lttng/org.eclipse.linuxtools.lttng.help/toc.xml
new file mode 100644
index 0000000000..f9ab61ccda
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/toc.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="LTTng User Guide" topic="html/toc.html">
+ <topic label="Concepts">
+ <anchor id="concepts"/>
+ </topic>
+ <topic label="Getting Started">
+ <anchor id="gettingstarted"/>
+ </topic>
+ <topic label="Limitations">
+ <anchor id="limitations"/>
+ </topic>
+ <topic label="Reference">
+ <anchor id="reference"/>
+ </topic>
+</toc>
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/tocconcepts.xml b/lttng/org.eclipse.linuxtools.lttng.help/tocconcepts.xml
new file mode 100644
index 0000000000..843fe9b6c3
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/tocconcepts.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Concepts" link_to="toc.xml#concepts">
+ <topic label="General">
+ <topic label="LTTng" href="html/concepts/lttng.html" />
+ <topic label="LTTv" href="html/concepts/lttv.html" />
+ <topic label="Trace" href="html/concepts/trace.html" />
+ <topic label="Experiment" href="html/concepts/experiment.html" />
+ </topic>
+ <topic label="User Interface">
+ <topic label="Perspective" href="html/concepts/perspective.html" />
+ <topic label="Project View" href="html/concepts/projectView.html" />
+ <topic label="Events View" href="html/concepts/eventsView.html" />
+ <topic label="Time Frame View" href="html/concepts/timeFrameView.html" />
+ <topic label="Control Flow View" href="html/concepts/controlFlowView.html" />
+ <topic label="Resources View" href="html/concepts/resourcesView.html" />
+ <topic label="Statistics View" href="html/concepts/statisticsView.html" />
+ </topic>
+</toc>
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/tocgettingstarted.xml b/lttng/org.eclipse.linuxtools.lttng.help/tocgettingstarted.xml
new file mode 100644
index 0000000000..2a9dad7d67
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/tocgettingstarted.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Getting Started" link_to="toc.xml#gettingstarted">
+ <topic label="General" href="html/gettingstarted/starting.html" />
+ <topic label="Samples" href="html/gettingstarted/samples.html" />
+</toc>
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/toclimitations.xml b/lttng/org.eclipse.linuxtools.lttng.help/toclimitations.xml
new file mode 100644
index 0000000000..cfc6d29b71
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/toclimitations.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Limitations" link_to="toc.xml#limitations">
+ <topic label="Limitations" href="html/limitations/limitations.html" />
+</toc>
diff --git a/lttng/org.eclipse.linuxtools.lttng.help/tocreference.xml b/lttng/org.eclipse.linuxtools.lttng.help/tocreference.xml
new file mode 100644
index 0000000000..f0bffa1d34
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.help/tocreference.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Reference" link_to="toc.xml#reference">
+ <topic label="References" href="html/reference/references.html" />
+</toc>
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/.classpath b/lttng/org.eclipse.linuxtools.lttng.jni/.classpath
new file mode 100644
index 0000000000..64c5e31b7a
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/.project b/lttng/org.eclipse.linuxtools.lttng.jni/.project
new file mode 100644
index 0000000000..7d476a5f24
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.linuxtools.lttng.jni</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/META-INF/MANIFEST.MF b/lttng/org.eclipse.linuxtools.lttng.jni/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..34c5ae0c0f
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.linuxtools.lttng.jni
+Bundle-Version: 0.2.0.qualifier
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.linuxtools.lttng.jni,
+ org.eclipse.linuxtools.lttng.jni.common,
+ org.eclipse.linuxtools.lttng.jni.exception,
+ org.eclipse.linuxtools.lttng.jni.factory,
+ org.eclipse.linuxtools.lttng.jni_v2_3,
+ org.eclipse.linuxtools.lttng.jni_v2_5
+Bundle-Localization: plugin
+Bundle-Vendor: %Bundle-Vendor
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/about.html b/lttng/org.eclipse.linuxtools.lttng.jni/about.html
new file mode 100644
index 0000000000..23506a4bae
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/about.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>About</title>
+</head><body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body></html> \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/build.properties b/lttng/org.eclipse.linuxtools.lttng.jni/build.properties
new file mode 100644
index 0000000000..a640f99858
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/doc/JNI_Documentation.doc b/lttng/org.eclipse.linuxtools.lttng.jni/doc/JNI_Documentation.doc
new file mode 100644
index 0000000000..1d44e259ab
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/doc/JNI_Documentation.doc
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/doc/JNI_Documentation.pdf b/lttng/org.eclipse.linuxtools.lttng.jni/doc/JNI_Documentation.pdf
new file mode 100644
index 0000000000..1ded5d7c30
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/doc/JNI_Documentation.pdf
Binary files differ
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/plugin.properties b/lttng/org.eclipse.linuxtools.lttng.jni/plugin.properties
new file mode 100644
index 0000000000..0030ed33a2
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/plugin.properties
@@ -0,0 +1,2 @@
+Bundle-Vendor = Eclipse Linux Tools
+Bundle-Name = JNI implementation for LTTng (Incubation) \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniEvent.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniEvent.java
new file mode 100644
index 0000000000..48dee4a666
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniEvent.java
@@ -0,0 +1,468 @@
+package org.eclipse.linuxtools.lttng.jni;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+
+import java.util.HashMap;
+
+import org.eclipse.linuxtools.lttng.jni.common.JniTime;
+import org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id;
+import org.eclipse.linuxtools.lttng.jni.exception.JniEventException;
+import org.eclipse.linuxtools.lttng.jni.exception.JniException;
+import org.eclipse.linuxtools.lttng.jni.exception.JniNoSuchEventException;
+
+/**
+ * <b><u>JniEvent</u></b> <p>
+ *
+ * A JniEvent has the actual content that got traced by Lttng.<br>
+ * Provides access to the LttEvent C structure in java. <p>
+ *
+ * Most important fields in the JniEvent are :
+ * <ul>
+ * <li>an event time, which is a digested timestamp.
+ * </ul>
+ * Note that the JniEvent content is not directly accessibe and should be obtained
+ * using the parseAllFields() or parseFieldBy...() methods.
+ *
+ * <b>NOTE</b><p>
+ * This class is ABSTRACT, you need to extends it to support your specific LTTng version.<p>
+ *
+ */
+public abstract class JniEvent extends Jni_C_Common implements Comparable<JniEvent>
+{
+ // Variables to detect if the event have been filled at least once
+ // this make possible the detection of "uninitialized" struct in Ltt
+ // Can be "EOK", "ERANGE" or "EPERM" (defined in Jni_C_Common)
+ private int eventState = EPERM; // Start with EPERM to ensure sanity
+
+ // Internal C pointer of the JniEvent used in LTT
+ private Jni_C_Pointer_And_Library_Id thisEventPtr = new Jni_C_Pointer_And_Library_Id();
+
+ // Reference to the parent tracefile
+ private JniTracefile parentTracefile = null;
+
+ // This map hold marker relative to the parent tracefile of this event
+ // They are "our" marker in this event
+ private HashMap<Integer, JniMarker> markersMap = null;
+
+ // Data we should populate from ltt
+ // Note that all type have been scaled up as there is no "unsigned" in java
+ // This might be a problem about "unsigned long" as there is no equivalent
+ // in java
+ private Jni_C_Pointer_And_Library_Id tracefilePtr = new Jni_C_Pointer_And_Library_Id();
+ private JniTime eventTime = null;
+
+ // These methods need a tracefile pointer, instead of a event pointer
+ protected native int ltt_readNextEvent(int libId, long tracefilePtr);
+ protected native int ltt_seekEvent(int libId, long tracefilePtr, JniTime givenTime);
+ protected native int ltt_positionToFirstEvent(int libId, long tracefilePtr);
+
+ // Native access functions
+ protected native long ltt_getTracefilePtr(int libId, long eventPtr);
+ protected native long ltt_getBlock(int libId, long eventPtr);
+ protected native long ltt_getOffset(int libId, long eventPtr);
+ protected native long ltt_getCurrentTimestampCounter(int libId, long eventPtr);
+ protected native long ltt_getTimestamp(int libId, long eventPtr);
+ protected native int ltt_getEventMarkerId(int libId, long eventPtr);
+ protected native long ltt_getNanosencondsTime(int libId, long eventPtr);
+ protected native void ltt_feedEventTime(int libId, long eventPtr, JniTime eventTime);
+ protected native long ltt_getEventDataSize(int libId, long eventPtr);
+ protected native long ltt_getEventSize(int libId, long eventPtr);
+ protected native int ltt_getCount(int libId, long eventPtr);
+ protected native long ltt_getOverflowNanoSeconds(int libId, long eventPtr);
+
+ // This method can be use to obtain the content as byte array
+ // Warning : untested!
+ protected native void ltt_getDataContent(int libId, long eventPtr, long dataSize, byte[] returnedContent);
+
+ // Debug native function, ask LTT to print event structure
+ protected native void ltt_printEvent(int libId, long eventPtr);
+
+ /**
+ * Default constructor is forbidden
+ */
+ protected JniEvent() {
+ }
+
+ /**
+ * Copy constructor.<p>
+ *
+ * @param oldEvent Reference to the JniEvent you want to copy.
+ */
+ public JniEvent(JniEvent oldEvent) {
+ thisEventPtr = oldEvent.thisEventPtr;
+ markersMap = oldEvent.markersMap;
+ parentTracefile = oldEvent.parentTracefile;
+ eventState = oldEvent.eventState;
+
+ tracefilePtr = oldEvent.tracefilePtr;
+ eventTime = oldEvent.eventTime;
+ }
+
+ /**
+ * Constructor with parameters<p>
+ *
+ * This constructor could throw. It will happen if an event can not be populated on <u>first read</u>.<br>
+ * In that case, the parent tracefile is probably useless and should be deleted.
+ *
+ * @param newEventPtr C pointer (converted in long) of the LttEvent C structure.
+ * @param newMarkersMap Reference an already populated HashMap of JniMarker objects
+ * @param newParentTracefile Reference to the parent JniTracefile of this JniEvent
+ *
+ * @exception JniException
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ * @see org.eclipse.linuxtools.lttng.jni.JniMarker
+ * @see org.eclipse.linuxtools.lttng.jni.JniTracefile
+ */
+ public JniEvent(Jni_C_Pointer_And_Library_Id newEventPtr, HashMap<Integer, JniMarker> newMarkersMap, JniTracefile newParentTracefile) throws JniException {
+
+ // Basic test to make sure we didn't get null/empty value
+ if ((newEventPtr.getPointer() == NULL)
+ || (newMarkersMap == null)
+ || (newMarkersMap.size() == 0)
+ || (newParentTracefile == null)) {
+ throw new JniEventException("Null or empty value passed to constructor, object is invalid! (JniEvent)");
+ }
+
+ thisEventPtr = newEventPtr;
+ tracefilePtr = newParentTracefile.getTracefilePtr();
+ markersMap = newMarkersMap;
+ parentTracefile = newParentTracefile;
+
+ eventTime = new JniTime();
+
+ // Try to move to the first event
+ // If the event is Out of Range (ERANGE) at the first read,
+ // this event type will never be usable.
+ // In that case, throw JniNoSuchEventException to warn the tracefile.
+ eventState = positionToFirstEvent();
+ if (eventState != EOK) {
+ throw new JniNoSuchEventException("Object not populated, unusable. There is probably no event of that type in the trace. (JniEvent)");
+ }
+ else {
+ populateEventInformation();
+ }
+ }
+
+ /**
+ * Move to the next event and populate the java object with LttEvent structure.<p>
+ *
+ * If the move fails, the event will not get populated and the last event data will still be available.
+ *
+ * @return LTT read status, as defined in Jni_C_Constant.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Constant
+ */
+ public int readNextEvent() {
+ // Ask Ltt to read the next event for this particular tracefile
+ eventState = ltt_readNextEvent(tracefilePtr.getLibraryId(), tracefilePtr.getPointer() );
+ // If the event state is sane populate it
+ if (eventState == EOK) {
+ populateEventInformation();
+ }
+
+ return eventState;
+ }
+
+ /**
+ * Seek to a certain time.<p>
+ *
+ * Seek to a certain time and read event at this exact time or the next one if there is no event there.<p>
+ *
+ * Note that this function can seek in an invalid position if the timestamp is after the last event.<br>
+ * In that case, a seek back would be required to get back to a consistent state.<p>
+ *
+ * If the seek fails, the event will not get populated and the last event data will still be available.<p>
+ *
+ * @return LTT read status, as defined in Jni_C_Constant
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Constant
+ */
+ public int seekToTime(JniTime seekTime) {
+ // Ask Ltt to read the next event for this particular tracefile
+ eventState = ltt_seekEvent(tracefilePtr.getLibraryId(), tracefilePtr.getPointer(), seekTime);
+
+ // If the event state is sane populate it
+ if (eventState == EOK) {
+ populateEventInformation();
+ }
+
+ return eventState;
+ }
+
+ /**
+ * Try to seek to a certain time and seek back if it failed.<p>
+ *
+ * Seek to a certain time and read event at this exact time or the next one if there is no event there.<p>
+ *
+ * If the seek fails, we will seek back to the previous position, so the event will stay in a consistent state.<p>
+ *
+ * @return LTT read status, as defined in Jni_C_Constant
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Constant
+ */
+ public int seekOrFallBack(JniTime seekTime) {
+ // Save the old time
+ JniTime oldTime = new JniTime(eventTime);
+
+ // Call seek to move ahead
+ // Save the state for the return (eventState will be modified if we seek back)
+ int returnState = seekToTime(seekTime);
+
+ // If the event state is sane populate it
+ if (returnState == EOK) {
+ populateEventInformation();
+ }
+ else {
+ seekToTime(oldTime);
+ }
+
+ return returnState;
+ }
+
+ /**
+ * Position on the first event in the tracefile.<p>
+ *
+ * The function return the read status after the first event.<p>
+ *
+ * A status different of EOK probably means there is no event associated to this tracefile.
+ *
+ * @return LTT read status, as defined in Jni_C_Constant
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Constant
+ */
+ public int positionToFirstEvent() {
+ eventState = ltt_positionToFirstEvent(tracefilePtr.getLibraryId(), tracefilePtr.getPointer());
+
+ return eventState;
+ }
+
+ /**
+ * Obtain a marker associated with this tracefile's event.
+ *
+ * @return Reference to the marker for this tracefile's event or null if none.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniMarker
+ */
+ public JniMarker requestEventMarker() {
+ return markersMap.get(getEventMarkerId());
+ }
+
+ /**
+ * Obtain the raw data of a LttEvent object.<p>
+ *
+ * The data will be in raw C bytes, not java bytes.<br>
+ * Note : This function is mostly untested and provided "as is".
+ *
+ * @return Bytes array of raw data (contain raw C bytes).
+ */
+ public byte[] requestEventContent() {
+ byte dataContent[] = new byte[(int) getEventDataSize()];
+
+ ltt_getDataContent(thisEventPtr.getLibraryId(), thisEventPtr.getPointer(), getEventDataSize(), dataContent);
+
+ return dataContent;
+ }
+
+ /**
+ * Obtain an event source.<p>
+ *
+ * This is not implemented yet and will always return "Kernel core" for now.
+ *
+ * @return Reference to the JniMarker object for this event or null if none.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniMarker
+ */
+ public String requestEventSource() {
+ // *** TODO ***
+ // No "Source" of event exists in Ltt so far
+ // It would be a good addition to have a way to detect where an event come
+ // from, like "kernel" or "userspace"
+ //
+ return "Kernel Core";
+ }
+
+ /**
+ * Parse a particular field in the event payload, identified by its id (position).<p>
+ *
+ * Note : Position are relative to an event marker (i.e. requestEventMarker().getMarkerFieldsArrayList() )
+ *
+ * @param fieldId Position of the field to parse.
+ *
+ * @return Object that contain the parsed payload
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniParser
+ */
+ public Object parseFieldById(int fieldId) {
+ return JniParser.parseField(this, fieldId);
+ }
+
+ /**
+ * Parse a particular field in the event payload, identified by its name.<p>
+ *
+ * Note : Name are relative to an event marker (i.e. requestEventMarker().getMarkerFieldsHashMap() )
+ *
+ * @param fieldName Position of the field to parse.
+ *
+ * @return Object that contain the parsed payload
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniParser
+ */
+ public Object parseFieldByName(String fieldName) {
+ return JniParser.parseField(this, fieldName);
+ }
+
+ /**
+ * Method to parse all the event payload.<p>
+ *
+ * @return HashMap<String, Object> which is the parsedContent objects and their name as key.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniParser
+ */
+ public HashMap<String, Object> parseAllFields() {
+ return JniParser.parseAllFields(this);
+ }
+
+ /*
+ * This function populates the event data with data from LTT
+ *
+ * NOTE : To get better performance, we copy very few data into memory here
+ *
+ */
+ private void populateEventInformation() {
+ // We need to save the time, as it is not a primitive (can't be dynamically called in getter)
+ eventTime.setTime(ltt_getNanosencondsTime(thisEventPtr.getLibraryId(), thisEventPtr.getPointer()));
+ }
+
+ public JniTime getEventTime() {
+ return eventTime;
+ }
+
+ // *** To get better performance, all getter belows call LTT directly ****
+ // That way, we can avoid copying data into memory
+ public int getEventMarkerId() {
+ return ltt_getEventMarkerId(thisEventPtr.getLibraryId(), thisEventPtr.getPointer());
+ }
+
+ public long getEventDataSize() {
+ return ltt_getEventDataSize(thisEventPtr.getLibraryId(), thisEventPtr.getPointer());
+ }
+
+ public HashMap<Integer, JniMarker> getMarkersMap() {
+ return markersMap;
+ }
+
+ /**
+ * Pointer to the parent LTTTracefile C structure.<br>
+ * <br>
+ * The pointer should only be used <u>INTERNALY</u>, do not use unless you
+ * know what you are doing.
+ *
+ * @return The actual (long converted) pointer or NULL.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ */
+ public Jni_C_Pointer_And_Library_Id getTracefilePtr() {
+ return new Jni_C_Pointer_And_Library_Id(thisEventPtr.getLibraryId(), ltt_getTracefilePtr(thisEventPtr.getLibraryId(), thisEventPtr.getPointer()) );
+ }
+
+ /**
+ * Pointer to the LttEvent C structure.<br>
+ * <br>
+ * The pointer should only be used <u>INTERNALY</u>, do not use unless you
+ * know what you are doing.
+ *
+ * @return The actual (long converted) pointer or NULL.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ */
+ public Jni_C_Pointer_And_Library_Id getEventPtr() {
+ return thisEventPtr;
+ }
+
+ public int getEventState() {
+ return eventState;
+ }
+
+ /**
+ * Getter to the parent tracefile for this event.
+ *
+ * @return The parent tracefile
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniTracefile
+ */
+ public JniTracefile getParentTracefile() {
+ return parentTracefile;
+ }
+
+ /**
+ * Compare fonction for JNIEvent.<p>
+ * <p>
+ * This will compare the current JNIEvent with a passed one by timestamp AND tracefile ("type").<br>
+ * If both are equal but type differs, current event is considered to be older (-1 returned).
+ *
+ * @return -1 if given event happens before, 0 if equal, 1 if passed event happens after.
+ */
+ public int compareTo(JniEvent rightEvent ){
+
+ // Note : this = left hand operand
+
+ // By default, we consider the current event to be older.
+ int eventComparaison = -1;
+
+ // Test against null before performing anything
+ if ( rightEvent != null ) {
+ // Compare the timestamp first
+ eventComparaison = this.getEventTime().compareTo( rightEvent.getEventTime() );
+
+ // If timestamp is equal, compare the parent tracefile ("event type")
+ if ( (eventComparaison == 0) && ( !this.parentTracefile.equals(rightEvent.parentTracefile)) ) {
+ eventComparaison = 1;
+ }
+ }
+ return eventComparaison;
+ }
+
+ /**
+ * Print information for this event.
+ * <u>Intended to debug</u><br>
+ *
+ * This function will call Ltt to print, so information printed will be
+ * the one from the C structure, not the one populated in java.<p>
+ */
+ public void printEventInformation() {
+ ltt_printEvent(thisEventPtr.getLibraryId(), thisEventPtr.getPointer());
+ }
+
+ /**
+ * toString() method.
+ * <u>Intended to debug.</u><p>
+ *
+ * @return Attributes of the object concatenated in String
+ */
+ @Override
+ public String toString() {
+ String returnData = "";
+
+ returnData += "tracefilePtr : " + tracefilePtr + "\n";
+ returnData += "eventMarkerId : " + getEventMarkerId() + "\n";
+ returnData += "eventTime : " + eventTime.getReferenceToString() + "\n";
+ returnData += " seconds : " + eventTime.getSeconds() + "\n";
+ returnData += " nanoSeconds : " + eventTime.getNanoSeconds() + "\n";
+ returnData += "eventDataSize : " + getEventDataSize() + "\n";
+ returnData += "markersMap : " + markersMap.keySet() + "\n"; // Hack to avoid ending up with markersMap.toString()
+
+ return returnData;
+ }
+
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniMarker.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniMarker.java
new file mode 100644
index 0000000000..dbad6c1195
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniMarker.java
@@ -0,0 +1,248 @@
+package org.eclipse.linuxtools.lttng.jni;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id;
+import org.eclipse.linuxtools.lttng.jni.exception.JniException;
+import org.eclipse.linuxtools.lttng.jni.exception.JniMarkerException;
+
+/**
+ * <b><u>JniMarker</u></b><p>
+ *
+ * A JniMarker contain information how to interpret the unparsed content (payload) of an event.<br>
+ * Each JniMarker contains several MarkerFields for each fields in the event's payload.
+ *
+ * Provides access to the marker_info C structure (from LTT) in java.
+ *
+ * Most important fields in the JniMarker are :
+ * <ul>
+ * <li> the name of the marker in String
+ * <li> an overview of the marker format (in C style printf format)
+ * <li> a reference to an ArrayList that contains MarkerFields object of this JniMarker
+ * </ul>
+ *
+ * <b>NOTE</b><p>
+ * This class is ABSTRACT, you need to extends it to support your specific LTTng version.<br>
+ * Please look at the abstract functions to override at the bottom of this file.<p>
+ *
+ */
+public abstract class JniMarker extends Jni_C_Common
+{
+ // Internal C pointer of the JniEvent used in LTT
+ private Jni_C_Pointer_And_Library_Id thisMarkerPtr = new Jni_C_Pointer_And_Library_Id();
+
+ private String name = "";
+ private String formatOverview = "";
+
+ // These two contains hold references to the same MarkerField object
+ // The ArrayList can be used to efficiently find a field by its position
+ // The HashMap can be used to find a field by its name
+ private HashMap<String, JniMarkerField> markerFieldsHashMap = null;
+ private ArrayList<JniMarkerField> markerFieldsArrayList = null;
+
+ // Native access method
+ protected native String ltt_getName(int libId, long markerPtr);
+ protected native String ltt_getFormatOverview(int libId, long markerPtr);
+ protected native long ltt_getSize(int libId, long markerPtr);
+ protected native short ltt_getLargestAlign(int libId, long markerPtr);
+ protected native short ltt_getIntSize(int libId, long markerPtr);
+ protected native short ltt_getLongSize(int libId, long markerPtr);
+ protected native short ltt_getPointerSize(int libId, long markerPtr);
+ protected native short ltt_getSize_tSize(int libId, long markerPtr);
+ protected native void ltt_getAllMarkerFields(int libId, long tracePtr);
+ protected native short ltt_getAlignement(int libId, long markerPtr);
+ protected native long ltt_getNextMarkerPtr(int libId, long markerPtr);
+
+ // Debug native function, ask LTT to print marker structure
+ protected native void ltt_printMarker(int libId, long markerPtr);
+
+ /*
+ * Default constructor is forbidden
+ */
+ protected JniMarker() {
+ }
+
+ /**
+ * Copy constructor.<p>
+ *
+ * @param oldMarker Reference to the JniMarker you want to copy.
+ */
+ public JniMarker(JniMarker oldMarker) {
+ thisMarkerPtr = oldMarker.thisMarkerPtr;
+ name = oldMarker.name;
+ formatOverview = oldMarker.formatOverview;
+ markerFieldsHashMap = oldMarker.markerFieldsHashMap;
+ markerFieldsArrayList = oldMarker.markerFieldsArrayList;
+
+ }
+
+ /**
+ * Constructor, using pointer.<p>
+ *
+ * @param newMarkerPtr Pointer to a C marker_info structure
+ *
+ * @exception JniException
+ */
+ public JniMarker(Jni_C_Pointer_And_Library_Id newMarkerPtr) throws JniException {
+ thisMarkerPtr = newMarkerPtr;
+ markerFieldsArrayList = new ArrayList<JniMarkerField>();
+ markerFieldsHashMap = new HashMap<String, JniMarkerField>();
+
+ // Populate the marker
+ populateMarkerInformation();
+ }
+
+
+ /*
+ * This function populates the marker data with data from LTT
+ *
+ */
+ private void populateMarkerInformation() throws JniException {
+ if (thisMarkerPtr.getPointer() == NULL) {
+ throw new JniMarkerException("Pointer is NULL, trace closed? (populateMarkerInformatOverviewion)");
+ } else {
+ name = ltt_getName(thisMarkerPtr.getLibraryId(), thisMarkerPtr.getPointer());
+ formatOverview = ltt_getFormatOverview(thisMarkerPtr.getLibraryId(), thisMarkerPtr.getPointer());
+ // To fill the markerFieldArray is a bit different
+ ltt_getAllMarkerFields(thisMarkerPtr.getLibraryId(), thisMarkerPtr.getPointer());
+ }
+ }
+
+ /*
+ * Fills a map of all the JniMarkerField associated with this JniMarker.
+ *
+ * Note: This function is called from C and there is no way to propagate
+ * exception back to the caller without crashing JNI. Therefore, it MUST
+ * catch all exceptions.
+ *
+ * @param markerName Name of the parent marker
+ * @param markerFieldPtr C Pointer (converted in long) to marker_field C Structure
+ */
+ private void addMarkerFieldFromC(String markerFieldName, long markerFieldPtr) {
+ // Create a new Jni_markerField object and insert it in the map
+ // the maker field fill itself with LTT data while being constructed
+ try {
+ JniMarkerField newMarkerField = allocateNewJniMarkerField( new Jni_C_Pointer_And_Library_Id(thisMarkerPtr.getLibraryId(), markerFieldPtr));
+ markerFieldsArrayList.add(newMarkerField);
+ markerFieldsHashMap.put(markerFieldName, newMarkerField);
+
+ } catch (JniException e) {
+ printlnC(thisMarkerPtr.getLibraryId(), "Failed to add marker field " + markerFieldName + " to marker fields list!(addMarkerFieldFromC)\n\tException raised : " + e.toString() );
+ }
+ }
+
+ // Access to class variable. Most of them doesn't have setter
+ public String getName() {
+ return name;
+ }
+
+ public String getFormatOverview() {
+ return formatOverview;
+ }
+
+ public HashMap<String,JniMarkerField> getMarkerFieldsHashMap() {
+ return markerFieldsHashMap;
+ }
+
+ public ArrayList<JniMarkerField> getMarkerFieldsArrayList() {
+ return markerFieldsArrayList;
+ }
+
+ /**
+ * Pointer to the marker_info C structure.<p>
+ *
+ * The pointer should only be used <u>INTERNALY</u>, do not use unless you
+ * know what you are doing.<p>
+ *
+ * @return The actual (long converted) pointer or NULL
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ */
+ public Jni_C_Pointer_And_Library_Id getMarkerPtr() {
+ return thisMarkerPtr;
+ }
+
+
+ /**
+ * Print information for this JniMarker.
+ * <u>Intended to debug</u><br>
+ *
+ * This function will call Ltt to print, so information printed will be the one from
+ * the C structure, not the one populated in java.<p>
+ *
+ * This function will not throw but will complain loudly if pointer is NULL
+ */
+ public void printMarkerInformation() {
+ ltt_printMarker(thisMarkerPtr.getLibraryId(), thisMarkerPtr.getPointer());
+ }
+
+ /**
+ * Print information for ALL marker fields for this marker.
+ * <u>Intended to debug</u><br>
+ *
+ * This function will call Ltt to print, so information printed will be the one from
+ * the C structure, not the one populated in java.
+ */
+ public void printAllMarkerFieldsInformation() {
+ Object[] allMarkersField = markerFieldsArrayList.toArray();
+
+ for (int pos = 0; pos < allMarkersField.length; pos++) {
+ printlnC(thisMarkerPtr.getLibraryId(), allMarkersField[pos].toString());
+ }
+ }
+
+ /**
+ * toString() method.
+ * <u>Intended to debug</u><br>
+ *
+ * @return Attributes of the object concatenated in String
+ */
+ @Override
+ public String toString() {
+ String returnData = "";
+
+ returnData += "name : " + name + "\n";
+ returnData += "formatOverview : " + formatOverview + "\n";
+ returnData += "markerFieldArrayList : " + markerFieldsArrayList.hashCode() + " (size : " + markerFieldsArrayList.size() + " )" + "\n";
+
+ return returnData;
+ }
+
+
+ // ****************************
+ // **** ABSTRACT FUNCTIONS ****
+ // You MUST override those in your version specific implementation
+
+
+ /**
+ * Function place holder to allocate a new JniMarkerField.<p>
+ * <br>
+ * JniMarkerField constructor is non overridable so we need another overridable function to return the correct version of JniMarkerField.<br>
+ * Effect of this function should be the same (allocate a fresh new JniMarkerField).<br>
+ * <br>
+ * <b>!! Override this with you version specific implementation.</b><br>
+ *
+ * @param newMarkerFieldPtr The pointer and library id of an already opened marker_field C Structure
+ *
+ * @return The newly allocated JniMarkerField of the correct version
+ *
+ * @throws JniException The construction (allocation) failed.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ * @see org.eclipse.linuxtools.lttng.jni.JniMarkerField
+ */
+ public abstract JniMarkerField allocateNewJniMarkerField(Jni_C_Pointer_And_Library_Id newMarkerFieldPtr) throws JniException;
+
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniMarkerField.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniMarkerField.java
new file mode 100644
index 0000000000..e2b13bb88c
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniMarkerField.java
@@ -0,0 +1,139 @@
+package org.eclipse.linuxtools.lttng.jni;
+
+import org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id;
+import org.eclipse.linuxtools.lttng.jni.exception.JniException;
+import org.eclipse.linuxtools.lttng.jni.exception.JniMarkerFieldException;
+
+
+/**
+ * <b><u>JniMarkerField</u></b> <p>
+ * A JniMarkerField is one of the field of the unparsed content (payload) of an event. <p>
+ *
+ * Provides access to the marker_field C structure (from LTT) in java.<p>
+ *
+ * Most important attributes in the JniMarkerField are :
+ * <ul>
+ * <li> the name (field) of in String
+ * <li> the marker field format (in C style printf format)
+ * </ul>
+ *
+ * <b>NOTE</b><p>
+ * This class is ABSTRACT, you need to extends it to support your specific LTTng version.<p>
+ *
+ */
+public abstract class JniMarkerField extends Jni_C_Common
+{
+ // Internal C pointer of the JniEvent used in LTT
+ private Jni_C_Pointer_And_Library_Id thisMarkerFieldPtr = new Jni_C_Pointer_And_Library_Id();
+
+ private String field = "";
+ private String format = "";
+
+ // Native access method
+ protected native String ltt_getField(int libId, long markerFieldPtr);
+ protected native int ltt_getType(int libId, long markerFieldPtr);
+ protected native long ltt_getOffset(int libId, long markerFieldPtr);
+ protected native long ltt_getSize(int libId, long markerFieldPtr);
+ protected native long ltt_getAlignment(int libId, long markerFieldPtr);
+ protected native long ltt_getAttributes(int libId, long markerFieldPtr);
+ protected native int ltt_getStatic_offset(int libId, long markerFieldPtr);
+ protected native String ltt_getFormat(int libId, long markerFieldPtr);
+
+ // Debug native function, ask LTT to print marker structure
+ protected native void ltt_printMarkerField(int libId, long markerFieldPtr);
+
+ /*
+ * Default constructor is forbidden
+ */
+ protected JniMarkerField() {
+ }
+
+ /**
+ * Copy constructor.<p>
+ *
+ * @param oldMarkerField Reference to the JniMarkerField you want to copy.
+ */
+ public JniMarkerField(JniMarkerField oldMarkerField) {
+ thisMarkerFieldPtr = oldMarkerField.getMarkerFieldPtr();
+ field = oldMarkerField.getField();
+ format = oldMarkerField.getFormat();
+ }
+
+ /**
+ * Constructor, using pointer.<p>
+ *
+ * @param newMarkerFieldPtr Pointer to a C marker_field structure
+ *
+ * @exception JniException
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ */
+ public JniMarkerField(Jni_C_Pointer_And_Library_Id newMarkerFieldPtr) throws JniException {
+ thisMarkerFieldPtr = newMarkerFieldPtr;
+
+ // Populate the marker field
+ populateMarkerFieldInformation();
+ }
+
+ /*
+ * This function populates the marker field data with data from LTT
+ *
+ */
+ private void populateMarkerFieldInformation() throws JniException {
+ if (thisMarkerFieldPtr.getPointer() == NULL) {
+ throw new JniMarkerFieldException(
+ "Pointer is NULL, trace closed? (populateMarkerInformation)");
+ } else {
+ field = ltt_getField(thisMarkerFieldPtr.getLibraryId(), thisMarkerFieldPtr.getPointer());
+ format = ltt_getFormat(thisMarkerFieldPtr.getLibraryId(), thisMarkerFieldPtr.getPointer());
+ }
+ }
+
+ public String getField() {
+ return field;
+ }
+
+ public String getFormat() {
+ return format;
+ }
+
+ /**
+ * Pointer to the marker_field C structure.<p>
+ *
+ * The pointer should only be used <u>INTERNALY</u>, do not use these unless you
+ * know what you are doing.<p>
+ *
+ * @return The actual (long converted) pointer or NULL
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ */
+ public Jni_C_Pointer_And_Library_Id getMarkerFieldPtr() {
+ return thisMarkerFieldPtr;
+ }
+
+ /**
+ * Print information for this event. <u>Intended to debug</u><br>
+ *
+ * This function will call Ltt to print, so information printed will be the one from
+ * the C structure, not the one populated in java.<p>
+ */
+ public void printMarkerFieldInformation() {
+ ltt_printMarkerField(thisMarkerFieldPtr.getLibraryId(), thisMarkerFieldPtr.getPointer());
+ }
+
+ /**
+ * toString() method.
+ * <u>Intended to debug</u><br>
+ *
+ * @return Attributes of the object concatenated in String
+ */
+ @Override
+ public String toString() {
+ String returnData = "";
+ returnData += "field : " + field + "\n";
+ returnData += "format : " + format + "\n";
+
+ return returnData;
+ }
+
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniParser.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniParser.java
new file mode 100644
index 0000000000..adeafd9ff5
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniParser.java
@@ -0,0 +1,297 @@
+package org.eclipse.linuxtools.lttng.jni;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+
+import java.util.HashMap;
+import java.util.Iterator;
+
+import org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer;
+
+/**
+ * <b><u>JniParser</u></b><p>
+ *
+ * JniParser is used to parse an event payload into something usable.<p>
+ *
+ * All methods are static, the parser shouldn't be instantiated.
+ *
+ * <b>NOTE</b><p>
+ * This class is ABSTRACT, you need to extends it to support your specific LTTng version.<p>
+ *
+ */
+public abstract class JniParser extends Jni_C_Common
+{
+ protected static native void ltt_getParsedData(int libId, ParsedObjectContent parseddata, long eventPtr, long markerFieldPtr);
+
+ // *** HACK ***
+ // We cannot use "Object" directly as java does not support swapping primitive value
+ // We either need to create a new object type or to use a "non-primitive" type that have "Setter()" functions
+ // Another (ugly) hack would be to pass an array to modify the reference's reference.
+ // ***
+ private static ParsedObjectContent parsedData = new ParsedObjectContent();
+
+ /*
+ * Default constructor is forbidden
+ */
+ protected JniParser() {
+ }
+
+
+ /**
+ * Method to parse a single field identified by its id.<p>
+ *
+ * All parsing will be done on C side as we need LTT functions.
+ *
+ * @param eventToParse The jni event we want to parse.
+ * @param fieldPosition The position (or id) of the field we want to parse
+ *
+ * @return An Object that contain the JniEvent payload parsed by the C, or null, if if was impossible to parse (i.e., wrong position)
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniEvent
+ */
+ static public Object parseField(JniEvent eventToParse, int fieldPosition) {
+
+ // Sanity check
+ if ( (fieldPosition < 0) || ( fieldPosition >= eventToParse.requestEventMarker().getMarkerFieldsArrayList().size() ) ){
+ return null;
+ }
+
+ JniMarkerField tmpField = eventToParse.requestEventMarker().getMarkerFieldsArrayList().get(fieldPosition);
+
+ // Call the parsing function in C. The result will be put in parsedData object
+ ltt_getParsedData(eventToParse.getEventPtr().getLibraryId(), parsedData, eventToParse.getEventPtr().getPointer(), tmpField.getMarkerFieldPtr().getPointer());
+
+ return parsedData.getData();
+ }
+
+
+ /**
+ * Method to parse a single field identified by its name.<p>
+ *
+ * All parsing will be done on C side as we need LTT functions.
+ *
+ * @param eventToParse The jni event we want to parse.
+ * @param fieldName The name of the field we want to parse.
+ *
+ * @return An Object that contain the JniEvent payload parsed by the C, or null, if if was impossible to parse (i.e., wrong position)
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniEvent
+ */
+ static public Object parseField(JniEvent eventToParse, String fieldName) {
+
+ JniMarkerField tmpField = eventToParse.requestEventMarker().getMarkerFieldsHashMap().get(fieldName);
+
+ // return immediately if there is no field by that name
+ if ( tmpField == null ) {
+ return null;
+ }
+
+ ltt_getParsedData(eventToParse.getEventPtr().getLibraryId(), parsedData, eventToParse.getEventPtr().getPointer(), tmpField.getMarkerFieldPtr().getPointer());
+
+ return parsedData.getData();
+ }
+
+
+
+ /**
+ * Method to parse all fields at once.<p>
+ *
+ * All parsing will be done on C side as we need LTT functions.
+ *
+ * @param eventToParse The jni event we want to parse.
+ * @return An HashMap of Object that contain the is the JniEvent's payload parsed by the C
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniEvent
+ */
+ static public HashMap<String, Object> parseAllFields(JniEvent eventToParse) {
+ HashMap<String,JniMarkerField> markerFieldData = eventToParse.requestEventMarker().getMarkerFieldsHashMap();
+
+ // This hashmap will contain the parsed content.
+ // ParsedContent is a local class defined at the end of this file
+
+ // *** HACK ***
+ // We want (need?) the map that contain the parsed data to be in the same order as markerField map
+ // The "instinctive way" would be to use :
+ // HashMap<String, Object> parsedDataMap = new HashMap<String, Object>(nbMarkerField);
+ //
+ // However, we cannot ensure that the newly created hashmap will use the same order.
+ // The hard way would be to override the default hash function for both hashmap
+ // However, this is way easier to abuse the fact that both hashmap are of type <String, something...>
+ // Therefore we can abuse the java-cast with clone() :
+ // HashMap<String, Object> parsedDataMap = (HashMap<String, Object>)markerFieldData.clone();
+ // Or even safer, use HashMap constructor to do so :
+ HashMap<String, Object> parsedDataMap = new HashMap<String, Object>(markerFieldData);
+
+ JniMarkerField newMarkerField = null;
+ Iterator<String> iterator = markerFieldData.keySet().iterator();
+
+ while ( iterator.hasNext() ) {
+ newMarkerField = markerFieldData.get(iterator.next());
+ // Call the C to parse the data
+ ltt_getParsedData(eventToParse.getEventPtr().getLibraryId(), parsedData, eventToParse.getEventPtr().getPointer(), newMarkerField.getMarkerFieldPtr().getPointer());
+ // Save the result into the HashMap
+ parsedDataMap.put(newMarkerField.getField(), parsedData.getData() );
+ }
+
+ return parsedDataMap;
+ }
+
+
+ /*
+ * Add a parsed String value to the Array<br>
+ * <br>
+ * Note : this function will be called from the C side.
+ * Note2: contentHolder is of type "Object" instead of "ParsedObjectContent" to be able to use the most generic function signature on the C side.
+ * its goal is to give a generic interface to people that would like to use the JNI library
+ *
+ * @param parsedArray Array where to store the value
+ * @param fieldName The name of the parsed field
+ * @param stringToAdd The parsed data to add
+ * @param formatToAdd The format of the raw data
+ */
+ static private void addStringToParsingFromC(Object contentHolder, String stringToAdd) {
+ ((ParsedObjectContent)contentHolder).setData( stringToAdd);
+ }
+
+ /*
+ * Add a parsed 64 bits Pointer value to the Array<br>
+ * <br>
+ * Note : this function will be called from the C side.
+ * Note2: contentHolder is of type "Object" instead of "ParsedObjectContent" to be able to use the most generic function signature on the C side.
+ * its goal is to give a generic interface to people that would like to use the JNI library
+ *
+ * @param contentHolder Object where to store the parsed value
+ * @param fieldName The name of the parsed field
+ * @param pointerToAdd The parsed data to add (in 64 bits long!)
+ * @param formatToAdd The format of the raw data
+ */
+ static private void addLongPointerToParsingFromC(Object contentHolder, long pointerToAdd) {
+ ((ParsedObjectContent)contentHolder).setData( new Jni_C_Pointer((long) pointerToAdd));
+ }
+
+ /*
+ * Add a parsed 32 bits Pointer value to the Array<br>
+ * <br>
+ * Note : this function will be called from the C side.
+ * Note2: contentHolder is of type "Object" instead of "ParsedObjectContent" to be able to use the most generic function signature on the C side.
+ * its goal is to give a generic interface to people that would like to use the JNI library
+ *
+ * @param contentHolder Object where to store the parsed value
+ * @param fieldName The name of the parsed field
+ * @param pointerToAdd The parsed data to add (converted in 64 bits long!)
+ * @param formatToAdd The format of the raw data
+ */
+ static private void addIntPointerToParsingFromC(Object contentHolder, long pointerToAdd) {
+ ((ParsedObjectContent)contentHolder).setData( new Jni_C_Pointer((int) pointerToAdd));
+ }
+
+ /*
+ * Add a parsed short value to the Array<br>
+ * <br>
+ * Note : this function will be called from the C side.
+ * Note2: contentHolder is of type "Object" instead of "ParsedObjectContent" to be able to use the most generic function signature on the C side.
+ * its goal is to give a generic interface to people that would like to use the JNI library
+ *
+ * @param contentHolder Object where to store the parsed value
+ * @param fieldName The name of the parsed field
+ * @param shortToAdd The parsed data to add
+ * @param formatToAdd The format of the raw data
+ */
+ static private void addShortToParsingFromC(Object contentHolder, short shortToAdd) {
+ ((ParsedObjectContent)contentHolder).setData( Short.valueOf(shortToAdd));
+ }
+
+ /*
+ * Add a parsed integer value to the Array<br>
+ * <br>
+ * Note : this function will be called from the C side.
+ * Note2: contentHolder is of type "Object" instead of "ParsedObjectContent" to be able to use the most generic function signature on the C side.
+ * its goal is to give a generic interface to people that would like to use the JNI library
+ *
+ * @param contentHolder Object where to store the parsed value
+ * @param fieldName The name of the parsed field
+ * @param intToAdd The parsed data to add
+ * @param formatToAdd The format of the raw data
+ */
+ static private void addIntegerToParsingFromC(Object contentHolder, int intToAdd) {
+ ((ParsedObjectContent)contentHolder).setData( Integer.valueOf(intToAdd));
+ }
+
+ /*
+ * Add a parsed long value to the Array<br>
+ * <br>
+ * Note : this function will be called from the C side.
+ * Note2: contentHolder is of type "Object" instead of "ParsedObjectContent" to be able to use the most generic function signature on the C side.
+ * its goal is to give a generic interface to people that would like to use the JNI library
+ *
+ * @param contentHolder Object where to store the parsed value
+ * @param fieldName The name of the parsed field
+ * @param longToAdd The parsed data to add
+ * @param formatToAdd The format of the raw data
+ */
+ static private void addLongToParsingFromC(Object contentHolder, long longToAdd) {
+ ((ParsedObjectContent)contentHolder).setData( Long.valueOf(longToAdd));
+ }
+
+ /*
+ * Add a parsed float value to the Array<br>
+ * <br>
+ * Note : this function will be called from the C side.
+ * Note2: contentHolder is of type "Object" instead of "ParsedObjectContent" to be able to use the most generic function signature on the C side.
+ * its goal is to give a generic interface to people that would like to use the JNI library
+ *
+ * @param contentHolder Object where to store the parsed value
+ * @param fieldName The name of the parsed field
+ * @param floatToAdd The parsed data to add
+ * @param formatToAdd The format of the raw data
+ */
+ static private void addFloatToParsingFromC(Object contentHolder, float floatToAdd) {
+ ((ParsedObjectContent)contentHolder).setData( new Float(floatToAdd));
+ }
+
+ /*
+ * Add a parsed double value to the Array<br>
+ * <br>
+ * Note : this function will be called from the C side.
+ * Note2: contentHolder is of type "Object" instead of "ParsedObjectContent" to be able to use the most generic function signature on the C side.
+ * its goal is to give a generic interface to people that would like to use the JNI library
+ *
+ *
+ * @param contentHolder Object where to store the parsed value
+ * @param fieldName The name of the parsed field
+ * @param doubleToAdd The parsed data to add
+ * @param formatToAdd The format of the raw data
+ */
+ static private void addDoubleToParsingFromC(Object contentHolder, double doubleToAdd) {
+ ((ParsedObjectContent)contentHolder).setData( new Double(doubleToAdd));
+ }
+
+}
+
+
+/**
+ * <b><u>ParsedObjectContent</u></b><p>
+ *
+ * ParsedObjectContent class.
+ * Only be used locally in this object to parse event data more efficiently in the C.
+ */
+class ParsedObjectContent {
+ private Object parsedData = null;
+
+ public Object getData() {
+ return parsedData;
+ }
+
+ public void setData(Object newData) {
+ parsedData = newData;
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniTrace.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniTrace.java
new file mode 100644
index 0000000000..9387662a37
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniTrace.java
@@ -0,0 +1,877 @@
+package org.eclipse.linuxtools.lttng.jni;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.PriorityQueue;
+
+import org.eclipse.linuxtools.lttng.jni.common.JniTime;
+import org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id;
+import org.eclipse.linuxtools.lttng.jni.exception.JniException;
+import org.eclipse.linuxtools.lttng.jni.exception.JniOpenTraceFailedException;
+import org.eclipse.linuxtools.lttng.jni.exception.JniTraceException;
+import org.eclipse.linuxtools.lttng.jni.exception.JniTracefileWithoutEventException;
+
+/**
+ * <b><u>JniTrace</u></b>
+ * <p>
+ * This is the top level class in the JNI. It provides access to the
+ * LttTrace C structure in java.
+ * <p>
+ * Most important fields in the JniTrace are :
+ * <ul>
+ * <li>a JniTrace path (a trace <b>directory</b>)
+ * <li>a HashMap of tracefiles that exists in this trace
+ * </ul>
+ * <p>
+ * <b>NOTE</b><p>
+ * This class is ABSTRACT, you need to extends it to support your specific LTTng version.<br>
+ * Please look at the abstract functions to override at the bottom of this file.<p>
+ */
+public abstract class JniTrace extends Jni_C_Common {
+
+ private final static boolean DEFAULT_LTT_DEBUG = false;
+
+ // Internal C pointer of the JniTrace used in LTT
+ private Jni_C_Pointer_And_Library_Id thisTracePtr = new Jni_C_Pointer_And_Library_Id();
+
+ // Data we should populate from LTT
+ // Note that all type have been scaled up as there is no "unsigned" in java
+ // This might be a problem about "unsigned long" as there is no equivalent
+ // in java
+
+ private String tracepath = ""; // Path of the trace. Should be a directory (like : /tmp/traceX)
+ private int cpuNumber = 0;
+ private long archType = 0;
+ private long archVariant = 0;
+ private short archSize = 0;
+ private short lttMajorVersion = 0;
+ private short lttMinorVersion = 0;
+ private short flightRecorder = 0;
+ private long freqScale = 0;
+ private long startFreq = 0;
+ private long startTimestampCurrentCounter = 0;
+ private long startMonotonic = 0;
+ private JniTime startTimeNoAdjustement = null;
+ private JniTime startTime = null;
+ private JniTime endTime = null;
+
+ // This Map holds a reference to the tracefiles owned by this trace
+ private HashMap<String, JniTracefile> tracefilesMap = null;
+ // The priority queue (similar to heap) hold events
+ private PriorityQueue<JniEvent> eventsHeap = null;
+
+ // This variable will hold the content of the "last" event we read
+ private JniEvent currentEvent = null;
+
+ // Should we print debug in the C library or not?
+ private boolean printLttDebug = DEFAULT_LTT_DEBUG;
+
+
+ // This need to be called prior to any operation
+ protected native int ltt_initializeHandle(String libname);
+
+ // This need to be called at the very end (destructor)
+ protected native boolean ltt_freeHandle(int libId);
+
+ // Open/close native functions
+ protected native long ltt_openTrace(int libId, String pathname, boolean printDebug);
+ protected native void ltt_closeTrace(int libId, long tracePtr);
+
+ // Native access functions
+ protected native String ltt_getTracepath(int libId, long tracePtr);
+ protected native int ltt_getCpuNumber(int libId, long tracePtr);
+ protected native long ltt_getArchType(int libId, long tracePtr);
+ protected native long ltt_getArchVariant(int libId, long tracePtr);
+ protected native short ltt_getArchSize(int libId, long tracePtr);
+ protected native short ltt_getLttMajorVersion(int libId, long tracePtr);
+ protected native short ltt_getLttMinorVersion(int libId, long tracePtr);
+ protected native short ltt_getFlightRecorder(int libId, long tracePtr);
+ protected native long ltt_getFreqScale(int libId, long tracePtr);
+ protected native long ltt_getStartFreq(int libId, long tracePtr);
+ protected native long ltt_getStartTimestampCurrentCounter(int libId, long tracePtr);
+ protected native long ltt_getStartMonotonic(int libId, long tracePtr);
+
+ // Native function to fill out startTime
+ protected native void ltt_feedStartTime(int libId, long tracePtr, JniTime startTime);
+
+ // Native function to fill out startTimeFromTimestampCurrentCounter
+ protected native void ltt_feedStartTimeFromTimestampCurrentCounter(int libId, long tracePtr, JniTime startTime);
+
+ // Native function to fill out tracefilesMap
+ protected native void ltt_feedAllTracefiles(int libId, long tracePtr);
+
+ // Native function to fill out the start and end time of the trace
+ protected native void ltt_feedTracefileTimeRange(int libId, long tracePtr, JniTime startTime, JniTime endTime);
+
+ // Debug native function, ask LTT to print trace structure
+ protected native void ltt_printTrace(int libId, long tracePtr);
+
+ /*
+ * Default constructor is forbidden
+ */
+ protected JniTrace() {
+ }
+
+ /**
+ * Constructor that takes a tracepath parameter.<p>
+ *
+ * This constructor also opens the trace.
+ *
+ * @param newpath The <b>directory</b> of the trace to be opened
+ *
+ * @exception JniException
+ */
+ public JniTrace(String newpath) throws JniException {
+ this(newpath, DEFAULT_LTT_DEBUG);
+ }
+
+ /**
+ * Constructor that takes a tracepath parameter and a debug value.<p>
+ *
+ * This constructor also opens the trace.
+ *
+ * @param newpath The <b>directory</b> of the trace to be opened
+ * @param newPrintDebug Should the debug information be printed in the LTT C library
+ *
+ * @exception JniException
+ */
+ public JniTrace(String newpath, boolean newPrintDebug) throws JniException {
+ tracepath = newpath;
+ thisTracePtr = new Jni_C_Pointer_And_Library_Id();
+ printLttDebug = newPrintDebug;
+
+ openTrace(newpath);
+ }
+
+ /**
+ * Copy constructor.
+ *
+ * @param oldTrace A reference to the JniTrace to copy.
+ */
+ public JniTrace(JniTrace oldTrace) {
+ thisTracePtr = oldTrace.thisTracePtr;
+
+ tracepath = oldTrace.tracepath;
+ cpuNumber = oldTrace.cpuNumber;
+ archType = oldTrace.archType;
+ archVariant = oldTrace.archVariant;
+ archSize = oldTrace.archSize;
+ lttMajorVersion = oldTrace.lttMajorVersion;
+ lttMinorVersion = oldTrace.lttMinorVersion;
+ flightRecorder = oldTrace.flightRecorder;
+ freqScale = oldTrace.freqScale;
+ startFreq = oldTrace.startFreq;
+ startTimestampCurrentCounter = oldTrace.startTimestampCurrentCounter;
+ startMonotonic = oldTrace.startMonotonic;
+ startTimeNoAdjustement = oldTrace.startTimeNoAdjustement;
+ startTime = oldTrace.startTime;
+ endTime = oldTrace.endTime;
+
+ tracefilesMap = new HashMap<String, JniTracefile>(oldTrace.tracefilesMap.size());
+ ltt_feedAllTracefiles(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+
+ eventsHeap = new PriorityQueue<JniEvent>( oldTrace.eventsHeap.size());
+ populateEventHeap();
+
+ printLttDebug = oldTrace.printLttDebug;
+ }
+
+ /**
+ * Constructor, using C pointer.<p>
+ *
+ * @param newPtr The pointer to an already opened LttTrace C structure.
+ * @param newPrintDebug Should the debug information be printed in the LTT C library
+ *
+ * @exception JniException
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ */
+ public JniTrace(Jni_C_Pointer_And_Library_Id newPtr, boolean newPrintDebug) throws JniException {
+ thisTracePtr = newPtr;
+ printLttDebug = newPrintDebug;
+
+ // Populate our trace
+ populateTraceInformation();
+ }
+
+
+ @Override
+ public void finalize() {
+ // If the trace is open, close it
+ if (thisTracePtr.getPointer() != NULL) {
+ closeTrace();
+ }
+
+ // Tell the C to free the allocated memory
+ freeLibrary();
+ }
+
+ /**
+ * Open an existing trace.<p>
+ *
+ * The tracepath is a directory and needs to exist, otherwise
+ * a JniOpenTraceFailedException is throwed.
+ *
+ * @param newPath The <b>directory</b> of the trace to be opened
+ *
+ * @exception JniOpenTraceFailedException Thrown if the open failed
+ */
+ public void openTrace(String newPath) throws JniException {
+ // If open is called while a trace is already opened, we will try to close it first
+ if (thisTracePtr.getPointer() != NULL) {
+ closeTrace();
+ }
+
+ // Set the tracepath and open it
+ tracepath = newPath;
+ openTrace();
+ }
+
+ /**
+ * Open an existing trace.<p>
+ *
+ * The tracepath should have been set already,
+ *
+ * @exception JniOpenTraceFailedException Thrown if the open failed
+ */
+ public void openTrace() throws JniException {
+
+ // Raise an exception if the tracepath is empty, otherwise open the trace
+ if (tracepath == "") {
+ throw new JniTraceException("Tracepath is not set. (openTrace)");
+ }
+
+ // If the file is already opened, close it first
+ if (thisTracePtr.getPointer() != NULL) {
+ closeTrace();
+ }
+
+ // Initialization of the library is made here
+ // It is very important that the id is kept!
+ int newLibraryId = initializeLibrary();
+ if ( newLibraryId != -1 ) {
+ // Call the LTT to open the trace
+ // Note that the libraryId is not yet and the pointer
+ long newPtr = ltt_openTrace(newLibraryId, tracepath, printLttDebug);
+
+ if (newPtr == NULL) {
+ thisTracePtr = new Jni_C_Pointer_And_Library_Id();
+ throw new JniOpenTraceFailedException("Error while opening trace. Is the tracepath correct? (openTrace)");
+ }
+
+ // This is OUR pointer
+ thisTracePtr = new Jni_C_Pointer_And_Library_Id(newLibraryId, newPtr);
+
+ // Populate the trace with LTT information
+ populateTraceInformation();
+ }
+ else {
+ thisTracePtr = new Jni_C_Pointer_And_Library_Id();
+ throw new JniTraceException("Failed to initialize library! Is the trace version supported?\n" +
+ "Make sure you have the correct LTTv library compiled. (openTrace)");
+ }
+ }
+
+ /**
+ * Close a trace.<p>
+ *
+ * If the trace is already closed, will silently do nothing.
+ */
+ public void closeTrace() {
+
+ if (thisTracePtr.getPointer() != NULL) {
+ ltt_closeTrace(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+
+ // Clear the tracefile map
+ tracefilesMap.clear();
+ tracefilesMap = null;
+
+ // Clear the eventsHeap and make it points to null
+ eventsHeap.clear();
+ eventsHeap = null;
+
+ // Nullify the pointer
+ thisTracePtr = new Jni_C_Pointer_And_Library_Id();
+ }
+ }
+
+ /**
+ * This function force the library to free its memory.<p>
+ *
+ * Note : No call to the library will work after this until ltt_initializeHandle is called again
+ */
+ public void freeLibrary() {
+ ltt_freeHandle(thisTracePtr.getLibraryId());
+ }
+
+ /*
+ * This function populates the trace data with data from LTT
+ *
+ * @throws JniException
+ */
+ private void populateTraceInformation() throws JniException {
+ if (thisTracePtr.getPointer() == NULL) {
+ throw new JniTraceException("Pointer is NULL, trace not opened/already closed? (populateTraceInformation)");
+ }
+
+ // Populate from the LTT library
+ tracepath = ltt_getTracepath(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+ cpuNumber = ltt_getCpuNumber(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+ archType = ltt_getArchType(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+ archVariant = ltt_getArchVariant(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+ archSize = ltt_getArchSize(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+ lttMajorVersion = ltt_getLttMajorVersion(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+ lttMinorVersion = ltt_getLttMinorVersion(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+ flightRecorder = ltt_getFlightRecorder(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+ freqScale = ltt_getFreqScale(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+ startFreq = ltt_getStartFreq(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+ startTimestampCurrentCounter = ltt_getStartTimestampCurrentCounter(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+ startMonotonic = ltt_getStartMonotonic(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+
+ // Creation of time is a bit different, we need to pass the object reference to C
+ //
+ // *** NOTE : LTTv consider "raw startTime" (time without any frequency adjustement) to be default startTime
+ // So "startTimeNoAdjustement" is obtain throught "ltt_feedStartTime()" and
+ // "startTime" is obtained from ltt_feedStartTimeFromTimestampCurrentCounter()
+ startTimeNoAdjustement = new JniTime();
+ ltt_feedStartTime(thisTracePtr.getLibraryId(), thisTracePtr.getPointer(), startTimeNoAdjustement);
+
+ startTime = new JniTime();
+ ltt_feedStartTimeFromTimestampCurrentCounter(thisTracePtr.getLibraryId(), thisTracePtr.getPointer(), startTime);
+
+ // Call the fill up function for the tracefiles map
+ if ( tracefilesMap== null ) {
+ tracefilesMap = new HashMap<String, JniTracefile>();
+ }
+ ltt_feedAllTracefiles(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+
+ // Now, obtain the trace "endTime"
+ // Note that we discard "startTime" right away, as we already have it
+ endTime = new JniTime();
+ ltt_feedTracefileTimeRange(thisTracePtr.getLibraryId(), thisTracePtr.getPointer(), new JniTime(), endTime);
+
+ if (eventsHeap == null) {
+ eventsHeap = new PriorityQueue<JniEvent>(tracefilesMap.size());
+ }
+
+ // Populate the heap with events
+ populateEventHeap();
+ }
+
+ /*
+ * This function populates the event heap with one event from each tracefile
+ * It should be called after each seek or when the object is constructed
+ */
+ private void populateEventHeap() {
+ currentEvent = null;
+ eventsHeap.clear();
+
+ Object new_key = null;
+ JniTracefile tmpTracefile = null;
+
+ Iterator<String> iterator = tracefilesMap.keySet().iterator();
+ while( iterator.hasNext() ) {
+ new_key = iterator.next();
+
+ tmpTracefile = tracefilesMap.get(new_key);
+ if ( tmpTracefile.getCurrentEvent().getEventState() == EOK ) {
+ eventsHeap.add( tmpTracefile.getCurrentEvent() );
+ }
+ }
+ }
+
+ /*
+ * Fills a map of all the trace files.
+ *
+ * Note: This function is called from C and there is no way to propagate
+ * exception back to the caller without crashing JNI. Therefore, it MUST
+ * catch all exceptions.
+ *
+ * @param tracefileName
+ * @param tracefilePtr
+ */
+ protected void addTracefileFromC(String tracefileName, long tracefilePtr) {
+
+ JniTracefile newTracefile = null;
+
+ // Create a new tracefile object and insert it in the map
+ // the tracefile fill itself with LTT data while being constructed
+ try {
+ newTracefile = allocateNewJniTracefile(new Jni_C_Pointer_And_Library_Id(thisTracePtr.getLibraryId(), tracefilePtr), this);
+ getTracefilesMap().put( (tracefileName + newTracefile.getCpuNumber()), newTracefile);
+ }
+ catch(JniTracefileWithoutEventException e) {
+ if ( printLttDebug == true ) {
+ printlnC(thisTracePtr.getLibraryId(), "JniTracefile " + tracefileName + " has no event (addTracefileFromC). Ignoring.");
+ }
+ }
+ catch(Exception e) {
+ if ( printLttDebug == true ) {
+ printlnC(thisTracePtr.getLibraryId(), "Failed to add tracefile " + tracefileName + " to tracefilesMap!(addTracefileFromC)\n\tException raised : " + e.toString() );
+ }
+ }
+ }
+
+ /**
+ * Return the top event in the events stack, determined by timestamp, in the trace (all the tracefiles).<p>
+ *
+ * Note : If the events were read before, the top event and the event currently loaded (currentEvent) are most likely the same.
+ *
+ * @return The top event in the stack or null if no event is available.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniEvent
+ */
+ public JniEvent findNextEvent() {
+ return eventsHeap.peek();
+ }
+
+ /**
+ * Return the next event in the events stack, determined by timestamp, in the trace (all the tracefiles).<p>
+ *
+ * @return The next event in the trace or null if no event is available.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniEvent
+ */
+ public JniEvent readNextEvent() {
+ // Get the "next" event on the top of the heap but DO NOT remove it
+ JniEvent tmpEvent = eventsHeap.peek();
+
+ // If the event is null, it was the last one in the trace we can leave the function
+ if (tmpEvent == null) {
+ return null;
+ }
+
+ // Otherwise, we need to make sure the timestamp of the event we got is not the same as the last "NextEvent" we requested
+ // NOTE : JniEvent.compareTo() compare by timestamp AND type, as 2 events of different type could have the same timestamp.
+ if ( tmpEvent.compareTo(currentEvent) == 0 ) {
+ // Remove the event on top as it is the same currentEventTimestamp
+ eventsHeap.poll();
+
+ // Read the next event for this particular event type
+ tmpEvent.readNextEvent();
+
+ // If the event state is sane (not Out of Range), put it back in the heap
+ if ( tmpEvent.getEventState() == EOK ) {
+ eventsHeap.add(tmpEvent);
+ }
+
+ // Pick the top event again
+ tmpEvent = eventsHeap.peek();
+
+ // Save the event we just read as the "current event"
+ currentEvent = tmpEvent;
+ }
+ // If the event on top has different timestamp than the currentTimestamp, just save this timestamp as current
+ else {
+ currentEvent = tmpEvent;
+ }
+
+ return tmpEvent;
+ }
+
+ /**
+ * Read the next event on a certain tracefile.<p>
+ *
+ * By calling this function make sure the "global" readNextEvent() stay synchronised.
+ * Calling readNextEvent() after this function will consider this tracefile moved and is then consistent.
+ *
+ * @param targetTracefile The tracefile object to read from
+ *
+ * @return The next event in the tracefile or null if no event is available.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniTracefile
+ * @see org.eclipse.linuxtools.lttng.jni.JniEvent
+ */
+ public JniEvent readNextEvent(JniTracefile targetTracefile) {
+ JniEvent returnedEvent = null;
+
+ // There is 2 special cases where we should read the CURRENT event, not the next one
+ // 1- The currentEvent is null --> We never read or we just seeked
+ // 2- The currentEvent is of another type --> We last read on a DIFFERENT tracefile
+ if ( (currentEvent == null) ||
+ (currentEvent.getParentTracefile().equals(targetTracefile) == false)
+ ) {
+ returnedEvent = targetTracefile.getCurrentEvent();
+ // Save the event we read
+ currentEvent = returnedEvent;
+ }
+ else {
+ // Remove from the event related to this tracefile from the event heap, if it exists.
+ // WARNING : This only safe as long getCurrentEvent() never return "null" in any case.
+ eventsHeap.remove(targetTracefile.getCurrentEvent() );
+
+ // If status EOK, we can return the event, otherwise something wrong happen (out of range, read error, etc...)
+ if ( targetTracefile.readNextEvent() == EOK) {
+ returnedEvent = targetTracefile.getCurrentEvent();
+ // Add back to the heap the read event
+ eventsHeap.add(returnedEvent);
+ }
+ // Save the event we read...
+ // Note : might be null if the read failed and it's ok
+ currentEvent = targetTracefile.getCurrentEvent();
+ }
+
+ return returnedEvent;
+ }
+
+ /**
+ * Seek to a certain time but <b>do not</b> read the next event.<p>
+ *
+ * This only position the trace, it will not return anything.<p>
+ *
+ * @param seekTime The time where we want to seek to
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.JniTime
+ */
+ public void seekToTime(JniTime seekTime) {
+
+ // Invalidate the last read event
+ currentEvent = null;
+
+ Object tracefile_name = null;
+ Iterator<String> iterator = tracefilesMap.keySet().iterator();
+
+ while (iterator.hasNext() ) {
+ // We seek to the given event for ALL tracefiles
+ tracefile_name = iterator.next();
+ seekToTime(seekTime, tracefilesMap.get(tracefile_name));
+ }
+
+ populateEventHeap();
+ }
+
+ /**
+ * Seek to a certain time on a certain tracefile but <b>do not</b> read the next event.<p>
+ *
+ * This only position the trace, it will not return anything.<p>
+ *
+ * @param targetTracefile The tracefile object to read from
+ * @param seekTime The time where we want to seek to
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniTracefile
+ * @see org.eclipse.linuxtools.lttng.jni.common.JniTime
+ */
+ public void seekToTime(JniTime seekTime, JniTracefile targetTracefile) {
+ // Invalidate the current read event
+ currentEvent = null;
+
+ // Remove from the event related to this tracefile from the event heap, if it exists.
+ // WARNING : This is only safe as long getCurrentEvent() never return "null" in any case.
+ eventsHeap.remove(targetTracefile.getCurrentEvent() );
+
+ // Perform the actual seek on the tracefile
+ // Add the event to the heap if it succeed
+ if ( targetTracefile.seekToTime(seekTime) == EOK) {
+ // Add back to the heap the read event
+ eventsHeap.add(targetTracefile.getCurrentEvent());
+ }
+ }
+
+ /**
+ * Seek to a certain timestamp and read the next event.
+ * <p>
+ * If no more events are available or an error happen, null will be returned.
+ *
+ * @param seekTime The time where we want to seek to.
+ *
+ * @return The event just after the seeked time or null if none available.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniEvent
+ * @see org.eclipse.linuxtools.lttng.jni.common.JniTime
+ */
+ public JniEvent seekAndRead(JniTime seekTime) {
+ JniEvent returnedEvent = null;
+ seekToTime(seekTime);
+
+ // The trace should be correctly positionned, let's get the event
+ returnedEvent = readNextEvent();
+
+ return returnedEvent;
+ }
+
+ /**
+ * Seek to a certain timestamp on a certain tracefile and read the next event.<p>
+ *
+ * If no more events are available or an error happen, null will be returned.
+ *
+ * Calling readNextEvent() after this function will consider this tracefile moved and is then consistent.<br>
+ *
+ * @param targetTracefile The tracefile object to read from
+ * @param seekTime The time where we want to seek to
+ *
+ * @return The event just after the seeked time or null if none available.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniTracefile
+ * @see org.eclipse.linuxtools.lttng.jni.common.JniTime
+ * @see org.eclipse.linuxtools.lttng.jni.JniEvent
+ */
+ public JniEvent seekAndRead(JniTime seekTime, JniTracefile targetTracefile) {
+ seekToTime(seekTime, targetTracefile);
+ return readNextEvent(targetTracefile);
+ }
+
+ /**
+ * Get a certain tracefile from its given name.<p>
+ *
+ * @param tracefileName The name of the tracefile.
+ *
+ * @return The tracefile found or null if none.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniTracefile
+ */
+ public JniTracefile requestTracefileByName(String tracefileName) {
+ return tracefilesMap.get(tracefileName);
+ }
+
+ /**
+ * Get a certain event associated to a tracefile from the tracefile name.<p>
+ *
+ * @param tracefileName The name of the trace file.
+ *
+ * @return Event of the tracefile or null if none found.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniEvent
+ */
+ public JniEvent requestEventByName(String tracefileName) {
+ JniEvent returnValue = null;
+
+ JniTracefile tmpTracefile = tracefilesMap.get(tracefileName);
+
+ // If the tracefile is found, return the current event
+ // There should always be an event linked to a tracefile
+ if (tmpTracefile != null) {
+ returnValue = tmpTracefile.getCurrentEvent();
+ }
+
+ return returnValue;
+ }
+
+ // Access to class variable. Most of them doesn't have setter
+ public String getTracepath() {
+ return tracepath;
+ }
+
+ public int getCpuNumber() {
+ return cpuNumber;
+ }
+
+ public long getArchType() {
+ return archType;
+ }
+
+ public long getArchVariant() {
+ return archVariant;
+ }
+
+ public short getArchSize() {
+ return archSize;
+ }
+
+ public short getLttMajorVersion() {
+ return lttMajorVersion;
+ }
+
+ public short getLttMinorVersion() {
+ return lttMinorVersion;
+ }
+
+ public short getFlightRecorder() {
+ return flightRecorder;
+ }
+
+ public long getFreqScale() {
+ return freqScale;
+ }
+
+ public long getStartFreq() {
+ return startFreq;
+ }
+
+ public long getStartTimestampCurrentCounter() {
+ return startTimestampCurrentCounter;
+ }
+
+ public long getStartMonotonic() {
+ return startMonotonic;
+ }
+
+ public JniTime getStartTime() {
+ return startTime;
+ }
+
+ public JniTime getEndTime() {
+ return endTime;
+ }
+
+ public JniTime getStartTimeNoAdjustement() {
+ return startTimeNoAdjustement;
+ }
+
+ public HashMap<String, JniTracefile> getTracefilesMap() {
+ return tracefilesMap;
+ }
+
+ /**
+ * The timestamp of the last read event.<p>
+ *
+ * Note : If no event is available, Long.MAX_VALUE is returned.
+ *
+ * @return Time of the last event read
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.JniTime
+ */
+ public JniTime getCurrentEventTimestamp() {
+ JniTime returnedTime = null;
+
+ // If no event were read or we reach the last event in the trace,
+ // currentEvent will be null
+ if ( currentEvent != null ) {
+ returnedTime = currentEvent.getEventTime();
+ }
+ else {
+ returnedTime = new JniTime(Long.MAX_VALUE);
+ }
+ return returnedTime;
+ }
+
+ /**
+ * Pointer to the LttTrace C structure.<p>
+ *
+ * The pointer should only be used <u>INTERNALY</u>, do not use unless you
+ * know what you are doing.
+ *
+ * @return The actual (long converted) pointer or NULL.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ */
+ public Jni_C_Pointer_And_Library_Id getTracePtr() {
+ return thisTracePtr;
+ }
+
+ /**
+ * Return boolean value saying if the debug is enabled in LTT or not.<p>
+ *
+ * Note : this need to be set at construction.
+ *
+ * @return If the debug is set or not
+ */
+ public boolean isPrintingLttDebug() {
+ return printLttDebug;
+ }
+
+ /**
+ * Print information for all the tracefiles associated with this trace.
+ * <u>Intended to debug</u><p>
+ *
+ * This function will call Ltt to print, so information printed will be the
+ * one from the C structure, not the one populated in java.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniTracefile
+ */
+ public void printAllTracefilesInformation() {
+ JniTracefile tracefile = null;
+
+ Iterator<String> iterator = tracefilesMap.keySet().iterator();
+ while (iterator.hasNext()) {
+ tracefile = tracefilesMap.get(iterator.next());
+ tracefile.printTracefileInformation();
+ }
+ }
+
+ /**
+ * Print information for this trace.
+ * <u>Intended to debug</u><p>
+ *
+ * This function will call Ltt to print, so information printed will be the
+ * one from the C structure, not the one populated in java.<p>
+ */
+ public void printTraceInformation() {
+ ltt_printTrace(thisTracePtr.getLibraryId(), thisTracePtr.getPointer());
+ }
+
+ /**
+ * toString() method.
+ * <u>Intended to debug</u><br>
+ *
+ * @return Attributes of the object concatenated in String
+ */
+ @Override
+ public String toString() {
+ String returnData = "";
+ returnData += "tracepath : " + tracepath + "\n";
+ returnData += "cpuNumber : " + cpuNumber + "\n";
+ returnData += "archType : " + archType + "\n";
+ returnData += "archVariant : " + archVariant + "\n";
+ returnData += "archSize : " + archSize + "\n";
+ returnData += "lttMajorVersion : " + lttMajorVersion + "\n";
+ returnData += "lttMinorVersion : " + lttMinorVersion + "\n";
+ returnData += "flightRecorder : " + flightRecorder + "\n";
+ returnData += "freqScale : " + freqScale + "\n";
+ returnData += "startFreq : " + startFreq + "\n";
+ returnData += "startTimestampCurrentCounter : " + startTimestampCurrentCounter + "\n";
+ returnData += "startMonotonic : " + startMonotonic + "\n";
+ returnData += "startTimeNoAdjustement : " + startTimeNoAdjustement.getReferenceToString() + "\n";
+ returnData += " seconds : " + startTimeNoAdjustement.getSeconds() + "\n";
+ returnData += " nanoSeconds : " + startTimeNoAdjustement.getNanoSeconds() + "\n";
+ returnData += "startTime : " + startTime.getReferenceToString() + "\n";
+ returnData += " seconds : " + startTime.getSeconds() + "\n";
+ returnData += " nanoSeconds : " + startTime.getNanoSeconds() + "\n";
+ returnData += "endTime : " + endTime.getReferenceToString() + "\n";
+ returnData += " seconds : " + endTime.getSeconds() + "\n";
+ returnData += " nanoSeconds : " + endTime.getNanoSeconds() + "\n";
+ returnData += "tracefilesMap : " + tracefilesMap.keySet() + "\n"; // Hack to avoid ending up with tracefilesMap.toString()
+
+ return returnData;
+ }
+
+
+ // ****************************
+ // **** ABSTRACT FUNCTIONS ****
+ // You MUST override those in your version specific implementation
+
+ /**
+ * Function place holder to load the correct C library.<p>
+ * <br>
+ * Can be as simple as calling ltt_initializeHandle(LIBRARY_NAME) with the correct .so instead of LIBRARY_NAME.<br>
+ * You may also want to perform some check or some additionnal validations.<br>
+ * <br>
+ * <b>!! Override this with you version specific implementation.</b><br>
+ *
+ * @return integer that is the library id, or -1 if the load was unsuccessful
+ */
+ public abstract int initializeLibrary();
+
+
+ /**
+ * Function place holder to allocate a new JniTracefile.<p>
+ *
+ * JniTracefile constructor is non overridable so we need another overridable function to return the correct version of JniTracefile.<br>
+ * Effect of this function should be the same (allocate a fresh new JniTracefile)<br>
+ * <br>
+ * <b>!! Override this with you version specific implementation.</b><br>
+ *
+ * @param newPtr The pointer of an already opened LttTracefile C Structure
+ * @param newParentTrace The JniTrace parent of this tracefile.
+ *
+ * @return The newly allocated JniTracefile of the correct version
+ *
+ * @throws JniException The construction (allocation) failed.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniTracefile
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ * @see org.eclipse.linuxtools.lttng.jni.JniTrace
+ */
+ public abstract JniTracefile allocateNewJniTracefile(Jni_C_Pointer_And_Library_Id newPtr, JniTrace newParentTrace) throws JniException;
+
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniTracefile.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniTracefile.java
new file mode 100644
index 0000000000..842d23b97d
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/JniTracefile.java
@@ -0,0 +1,513 @@
+package org.eclipse.linuxtools.lttng.jni;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+
+import java.util.HashMap;
+
+import org.eclipse.linuxtools.lttng.jni.common.JniTime;
+import org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer;
+import org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id;
+import org.eclipse.linuxtools.lttng.jni.exception.JniException;
+import org.eclipse.linuxtools.lttng.jni.exception.JniNoSuchEventException;
+import org.eclipse.linuxtools.lttng.jni.exception.JniTracefileException;
+import org.eclipse.linuxtools.lttng.jni.exception.JniTracefileWithoutEventException;
+
+/**
+ * <b><u>JniTracefile</u></b>
+ * <p>
+ * A tracefile own an event of a certain type.<br>
+ * Provides access to the LttTracefile C structure in java.
+ * <p>
+ * Most important fields in the JniTracefile are :
+ * <ul>
+ * <li> a JniTracefile path (a tracefile <b>file</b> within a JniTrace directory)
+ * <li> a name (basically the name without the directory part)
+ * <li> a reference to a single event object
+ * <li> a HashMap of marker associated with this tracefile
+ * </ul>
+ * <b>NOTE</b><p>
+ * This class is ABSTRACT, you need to extends it to support your specific LTTng version.<br>
+ * Please look at the abstract functions to override at the bottom of this file.<p>
+ *
+ */
+public abstract class JniTracefile extends Jni_C_Common
+{
+ // Internal C pointer of the JniTracefile used in LTT
+ private Jni_C_Pointer_And_Library_Id thisTracefilePtr = new Jni_C_Pointer_And_Library_Id();
+
+ // Reference to the parent trace
+ private JniTrace parentTrace = null;
+
+ // Data we should populate from LTT
+ // Note that all type have been scaled up as there is no "unsigned" in java
+ // This might be a problem about "unsigned long" as there is no equivalent in java
+ private boolean isCpuOnline = false;
+ private String tracefilePath = "";
+ private String tracefileName = "";
+ private long cpuNumber = 0;
+ private long tid = 0;
+ private long pgid = 0;
+ private long creation = 0;
+
+ // Internal C pointer for trace and marker
+ // Note : These are real Jni_C_Pointer, not Jni_C_Pointer_And_Library_Id
+ private Jni_C_Pointer tracePtr = null;
+ private Jni_C_Pointer markerDataPtr = null;
+
+ private int CFileDescriptor = 0;
+ private long fileSize = 0;
+ private long blocksNumber = 0;
+ private boolean isBytesOrderReversed = false;
+ private boolean isFloatWordOrdered = false;
+ private long alignement = 0;
+ private long bufferHeaderSize = 0;
+ private int bitsOfCurrentTimestampCounter = 0;
+ private int bitsOfEvent = 0;
+ private long currentTimestampCounterMask = 0;
+ private long currentTimestampCounterMaskNextBit = 0;
+ private long eventsLost = 0;
+ private long subBufferCorrupt = 0;
+ private JniEvent currentEvent = null;
+
+ // Internal C pointer for trace and marker
+ // Note : This one is a real Jni_C_Pointer, not Jni_C_Pointer_And_Library_Id
+ private Jni_C_Pointer bufferPtr = null;
+
+ private long bufferSize = 0;
+
+ // This map will hold markers_info owned by this tracefile
+ private HashMap<Integer, JniMarker> tracefileMarkersMap = null;
+
+ // Native access functions
+ protected native boolean ltt_getIsCpuOnline(int libId, long tracefilePtr);
+ protected native String ltt_getTracefilepath(int libId, long tracefilePtr);
+ protected native String ltt_getTracefilename(int libId, long tracefilePtr);
+ protected native long ltt_getCpuNumber(int libId, long tracefilePtr);
+ protected native long ltt_getTid(int libId, long tracefilePtr);
+ protected native long ltt_getPgid(int libId, long tracefilePtr);
+ protected native long ltt_getCreation(int libId, long tracefilePtr);
+ protected native long ltt_getTracePtr(int libId, long tracefilePtr);
+ protected native long ltt_getMarkerDataPtr(int libId, long tracefilePtr);
+ protected native int ltt_getCFileDescriptor(int libId, long tracefilePtr);
+ protected native long ltt_getFileSize(int libId, long tracefilePtr);
+ protected native long ltt_getBlockNumber(int libId, long tracefilePtr);
+ protected native boolean ltt_getIsBytesOrderReversed(int libId, long tracefilePtr);
+ protected native boolean ltt_getIsFloatWordOrdered(int libId, long tracefilePtr);
+ protected native long ltt_getAlignement(int libId, long tracefilePtr);
+ protected native long ltt_getBufferHeaderSize(int libId, long tracefilePtr);
+ protected native int ltt_getBitsOfCurrentTimestampCounter(int libId, long tracefilePtr);
+ protected native int ltt_getBitsOfEvent(int libId, long tracefilePtr);
+ protected native long ltt_getCurrentTimestampCounterMask(int libId, long tracefilePtr);
+ protected native long ltt_getCurrentTimestampCounterMaskNextBit(int libId, long tracefilePtr);
+ protected native long ltt_getEventsLost(int libId, long tracefilePtr);
+ protected native long ltt_getSubBufferCorrupt(int libId, long tracefilePtr);
+ protected native long ltt_getEventPtr(int libId, long tracefilePtr);
+ protected native long ltt_getBufferPtr(int libId, long tracefilePtr);
+ protected native long ltt_getBufferSize(int libId, long tracefilePtr);
+
+ // Method to fill a map with marker object
+ protected native void ltt_feedAllMarkers(int libId, long tracefilePtr);
+
+ // Debug native function, ask LTT to print tracefile structure
+ protected native void ltt_printTracefile(int libId, long tracefilePtr);
+
+ /*
+ * Default constructor is forbidden
+ */
+ protected JniTracefile() {
+ }
+
+ /**
+ * Copy constructor.<p>
+ *
+ * @param oldTracefile Reference to the JniTracefile you want to copy.
+ */
+ public JniTracefile(JniTracefile oldTracefile) {
+ thisTracefilePtr = oldTracefile.thisTracefilePtr;
+ parentTrace = oldTracefile.parentTrace;
+ tracefileMarkersMap = oldTracefile.tracefileMarkersMap;
+ isCpuOnline = oldTracefile.isCpuOnline;
+ tracefilePath = oldTracefile.tracefilePath;
+ tracefileName = oldTracefile.tracefileName;
+ cpuNumber = oldTracefile.cpuNumber;
+ tid = oldTracefile.tid;
+ pgid = oldTracefile.pgid;
+ creation = oldTracefile.creation;
+ tracePtr = oldTracefile.tracePtr;
+ markerDataPtr = oldTracefile.markerDataPtr;
+ CFileDescriptor = oldTracefile.CFileDescriptor;
+ fileSize = oldTracefile.fileSize;
+ blocksNumber = oldTracefile.blocksNumber;
+ isBytesOrderReversed = oldTracefile.isBytesOrderReversed;
+ isFloatWordOrdered = oldTracefile.isFloatWordOrdered;
+ alignement = oldTracefile.alignement;
+ bufferHeaderSize = oldTracefile.bufferHeaderSize;
+ bitsOfCurrentTimestampCounter = oldTracefile.bitsOfCurrentTimestampCounter;
+ bitsOfEvent = oldTracefile.bitsOfEvent;
+ currentTimestampCounterMask = oldTracefile.currentTimestampCounterMask;
+ currentTimestampCounterMaskNextBit = oldTracefile.currentTimestampCounterMaskNextBit;
+ eventsLost = oldTracefile.eventsLost;
+ subBufferCorrupt = oldTracefile.subBufferCorrupt;
+ currentEvent = oldTracefile.currentEvent;
+ bufferPtr = oldTracefile.bufferPtr;
+ bufferSize = oldTracefile.bufferSize;
+ }
+
+ /**
+ * Constructor, using C pointer.<p>
+ *
+ * @param newPtr The pointer of an already opened LttTracefile C Structure
+ * @param newParentTrace The JniTrace parent of this tracefile.
+ *
+ * @exception JniException
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniTrace
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ */
+ public JniTracefile(Jni_C_Pointer_And_Library_Id newPtr, JniTrace newParentTrace) throws JniException {
+ thisTracefilePtr = newPtr;
+ parentTrace = newParentTrace;
+ tracefileMarkersMap = new HashMap<Integer, JniMarker>();
+
+ // Retrieve the trace file information and load the first event.
+ try {
+ populateTracefileInformation();
+ }
+ catch (JniNoSuchEventException e) {
+ throw new JniTracefileWithoutEventException("JniEvent constructor reported that no event of this type are usable. (Jni_Tracefile)");
+ }
+ }
+
+ /**
+ * Read the next event of this tracefile.<p>
+ *
+ * Note : If the read succeed, the event will be populated.<p>
+ *
+ * @return LTT read status, as defined in Jni_C_Constant
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Constant
+ */
+ public int readNextEvent() {
+ return currentEvent.readNextEvent();
+ }
+
+ /**
+ * Seek to the given time.<p>
+ *
+ * Note : If the seek succeed, the event will be populated.
+ *
+ * @param seekTime The timestamp where to seek.
+ *
+ * @return LTT read status, as defined in Jni_C_Constant
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Constant
+ */
+ public int seekToTime(JniTime seekTime) {
+ return currentEvent.seekToTime(seekTime);
+ }
+
+ /*
+ * This function populates the tracefile data with data from LTT
+ *
+ * @throws JniException
+ */
+ private void populateTracefileInformation() throws JniException {
+ if (thisTracefilePtr.getPointer() == NULL) {
+ throw new JniTracefileException("Pointer is NULL, trace closed? (populateTracefileInformation)");
+ }
+
+ isCpuOnline = ltt_getIsCpuOnline(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer());
+ tracefilePath = ltt_getTracefilepath(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer());
+ tracefileName = ltt_getTracefilename(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer());
+ cpuNumber = ltt_getCpuNumber(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer());
+ tid = ltt_getTid(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ pgid = ltt_getPgid(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ creation = ltt_getCreation(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ tracePtr = new Jni_C_Pointer(ltt_getTracePtr(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer()) );
+ markerDataPtr = new Jni_C_Pointer(ltt_getMarkerDataPtr(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer()) );
+ CFileDescriptor = ltt_getCFileDescriptor(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ fileSize = ltt_getFileSize(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ blocksNumber = ltt_getBlockNumber(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ isBytesOrderReversed = ltt_getIsBytesOrderReversed(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ isFloatWordOrdered = ltt_getIsFloatWordOrdered(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ alignement = ltt_getAlignement(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ bufferHeaderSize = ltt_getBufferHeaderSize(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ bitsOfCurrentTimestampCounter = ltt_getBitsOfCurrentTimestampCounter(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ bitsOfEvent = ltt_getBitsOfEvent(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ currentTimestampCounterMask = ltt_getCurrentTimestampCounterMask(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ currentTimestampCounterMaskNextBit = ltt_getCurrentTimestampCounterMaskNextBit(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ eventsLost = ltt_getEventsLost(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ subBufferCorrupt = ltt_getSubBufferCorrupt(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ bufferPtr = new Jni_C_Pointer(ltt_getBufferPtr(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer()) );
+ bufferSize = ltt_getBufferSize(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer());
+
+ // To fill the map is a bit different
+ ltt_feedAllMarkers(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+
+ Jni_C_Pointer_And_Library_Id tmpEventPointer = new Jni_C_Pointer_And_Library_Id(thisTracefilePtr.getLibraryId(), ltt_getEventPtr(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer()));
+ currentEvent = allocateNewJniEvent(tmpEventPointer , tracefileMarkersMap, this);
+ }
+
+ /*
+ * Fills a map of all the markers associated with this tracefile.
+ *
+ * Note: This function is called from C and there is no way to propagate
+ * exception back to the caller without crashing JNI. Therefore, it MUST
+ * catch all exceptions.
+ *
+ * @param markerId Id of the marker (int)
+ * @param markerInfoPtr C Pointer to a marker_info C structure
+ */
+ private void addMarkersFromC(int markerId, long markerInfoPtr) {
+ // Create a new tracefile object and insert it in the map
+ // the tracefile fill itself with LTT data while being constructed
+ try {
+ JniMarker newMarker = allocateNewJniMarker( new Jni_C_Pointer_And_Library_Id(thisTracefilePtr.getLibraryId(), markerInfoPtr) );
+
+ tracefileMarkersMap.put(markerId, newMarker);
+ } catch (Exception e) {
+ printlnC(thisTracefilePtr.getLibraryId(), "Failed to add marker to tracefileMarkersMap!(addMarkersFromC)\n\tException raised : " + e.toString());
+ }
+ }
+
+ // Access to class variable. Most of them doesn't have setter
+ public boolean getIsCpuOnline() {
+ return isCpuOnline;
+ }
+
+ public String getTracefilePath() {
+ return tracefilePath;
+ }
+
+ public String getTracefileName() {
+ return tracefileName;
+ }
+
+ public long getCpuNumber() {
+ return cpuNumber;
+ }
+
+ public long getTid() {
+ return tid;
+ }
+
+ public long getPgid() {
+ return pgid;
+ }
+
+ public long getCreation() {
+ return creation;
+ }
+
+ public Jni_C_Pointer getTracePtr() {
+ return tracePtr;
+ }
+
+ public Jni_C_Pointer getMarkerDataPtr() {
+ return markerDataPtr;
+ }
+
+ public int getCFileDescriptor() {
+ return CFileDescriptor;
+ }
+
+ public long getFileSize() {
+ return fileSize;
+ }
+
+ public long getBlocksNumber() {
+ return blocksNumber;
+ }
+
+ public boolean getIsBytesOrderReversed() {
+ return isBytesOrderReversed;
+ }
+
+ public boolean getIsFloatWordOrdered() {
+ return isFloatWordOrdered;
+ }
+
+ public long getAlignement() {
+ return alignement;
+ }
+
+ public long getBufferHeaderSize() {
+ return bufferHeaderSize;
+ }
+
+ public int getBitsOfCurrentTimestampCounter() {
+ return bitsOfCurrentTimestampCounter;
+ }
+
+ public int getBitsOfEvent() {
+ return bitsOfEvent;
+ }
+
+ public long getCurrentTimestampCounterMask() {
+ return currentTimestampCounterMask;
+ }
+
+ public long getCurrentTimestampCounterMaskNextBit() {
+ return currentTimestampCounterMaskNextBit;
+ }
+
+ public long getEventsLost() {
+ return eventsLost;
+ }
+
+ public long getSubBufferCorrupt() {
+ return subBufferCorrupt;
+ }
+
+ public JniEvent getCurrentEvent() {
+ return currentEvent;
+ }
+
+ public Jni_C_Pointer getBufferPtr() {
+ return bufferPtr;
+ }
+
+ public long getBufferSize() {
+ return bufferSize;
+ }
+
+ public HashMap<Integer, JniMarker> getTracefileMarkersMap() {
+ return tracefileMarkersMap;
+ }
+
+ /**
+ * Parent trace of this tracefile.<p>
+ *
+ * @return The parent trace
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniTrace
+ */
+ public JniTrace getParentTrace() {
+ return parentTrace;
+ }
+
+ /**
+ * Pointer to the LttTracefile C structure<p>
+ *
+ * The pointer should only be used <u>INTERNALY</u>, do not use unless you
+ * know what you are doing.<p>
+ *
+ * @return The actual (long converted) pointer or NULL.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ */
+ public Jni_C_Pointer_And_Library_Id getTracefilePtr() {
+ return thisTracefilePtr;
+ }
+
+ /**
+ * Print information for this tracefile.
+ * <u>Intended to debug</u><p>
+ *
+ * This function will call Ltt to print, so information printed will be the
+ * one from the C structure, not the one populated in java.<p>
+ */
+ public void printTracefileInformation() {
+ ltt_printTracefile(thisTracefilePtr.getLibraryId(), thisTracefilePtr.getPointer() );
+ }
+
+ /**
+ * toString() method.
+ * <u>Intended to debug</u><p>
+ *
+ * @return Attributes of the object concatenated in String
+ */
+ @Override
+ public String toString() {
+ String returnData = "";
+
+ returnData += "isCpuOnline : " + isCpuOnline + "\n";
+ returnData += "tracefilePath : " + tracefilePath + "\n";
+ returnData += "tracefileName : " + tracefileName + "\n";
+ returnData += "cpuNumber : " + cpuNumber + "\n";
+ returnData += "tid : " + tid + "\n";
+ returnData += "pgid : " + pgid + "\n";
+ returnData += "creation : " + creation + "\n";
+ returnData += "tracePtr : " + tracePtr + "\n";
+ returnData += "markerDataPtr : " + markerDataPtr + "\n";
+ returnData += "CFileDescriptor : " + CFileDescriptor + "\n";
+ returnData += "fileSize : " + fileSize + "\n";
+ returnData += "blocksNumber : " + blocksNumber + "\n";
+ returnData += "isBytesOrderReversed : " + isBytesOrderReversed + "\n";
+ returnData += "isFloatWordOrdered : " + isFloatWordOrdered + "\n";
+ returnData += "alignement : " + alignement + "\n";
+ returnData += "bufferHeaderSize : " + bufferHeaderSize + "\n";
+ returnData += "bitsOfCurrentTimestampCounter : " + bitsOfCurrentTimestampCounter + "\n";
+ returnData += "bitsOfEvent : " + bitsOfEvent + "\n";
+ returnData += "currentTimestampCounterMask : " + currentTimestampCounterMask + "\n";
+ returnData += "currentTimestampCounterMaskNextBit : " + currentTimestampCounterMaskNextBit + "\n";
+ returnData += "eventsLost : " + eventsLost + "\n";
+ returnData += "subBufferCorrupt : " + subBufferCorrupt + "\n";
+ returnData += "currentEvent : " + currentEvent.getReferenceToString() + "\n"; // Hack to avoid ending up with event.toString()
+ returnData += "bufferPtr : " + bufferPtr + "\n";
+ returnData += "bufferSize : " + bufferSize + "\n";
+ returnData += "tracefileMarkersMap : " + tracefileMarkersMap.keySet() + "\n"; // Hack to avoid ending up with tracefileMarkersMap.toString()
+
+ return returnData;
+ }
+
+
+ // ****************************
+ // **** ABSTRACT FUNCTIONS ****
+ // You MUST override those in your version specific implementation
+
+
+ /**
+ * Function place holder to allocate a new JniEvent.<p>
+ * <br>
+ * JniEvent constructor is non overridable so we need another overridable function to return the correct version of JniEvent.<br>
+ * Effect of this function should be the same (allocate a fresh new JniEvent).<br>
+ * <br>
+ * <b>!! Override this with you version specific implementation.</b><br>
+ *
+ * @param newEventPtr The pointer of an already opened LttEvent C Structure
+ * @param newMarkersMap An already populated HashMap of JniMarker objects for this new event
+ * @param newParentTracefile The JniTrace parent of this tracefile.
+ *
+ * @return The newly allocated JniEvent of the correct version
+ *
+ * @throws JniException The construction (allocation) failed.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniEvent
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ * @see org.eclipse.linuxtools.lttng.jni.JniMarker
+ * @see org.eclipse.linuxtools.lttng.jni.JniTracefile
+ */
+ public abstract JniEvent allocateNewJniEvent(Jni_C_Pointer_And_Library_Id newEventPtr, HashMap<Integer, JniMarker> newMarkersMap, JniTracefile newParentTracefile) throws JniException;
+
+
+ /**
+ * Function place holder to allocate a new JniMarker.<p>
+ * <br>
+ * JniMarker constructor is non overridable so we need another overridable function to return the correct version of JniMarker.<br>
+ * Effect of this function should be the same (allocate a fresh new JniMarker).<br>
+ * <br>
+ * <b>!! Override this with you version specific implementation.</b><br>
+ *
+ * @param newMarkerPtr The pointer of an already opened marker_info C Structure
+ *
+ * @return The newly allocated JniMarker of the correct version
+ *
+ * @throws JniException The construction (allocation) failed.
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniMarker
+ * @see org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id
+ */
+ public abstract JniMarker allocateNewJniMarker(Jni_C_Pointer_And_Library_Id newMarkerPtr) throws JniException;
+
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/Jni_C_Common.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/Jni_C_Common.java
new file mode 100644
index 0000000000..2713bd6c84
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/Jni_C_Common.java
@@ -0,0 +1,56 @@
+package org.eclipse.linuxtools.lttng.jni;
+
+import org.eclipse.linuxtools.lttng.jni.common.Jni_C_Constant;
+
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+
+/**
+ * <b><u>Jni_C_Common</u></b>
+ * <p>
+ * Common constants and methods that should be shared between JNI objects.
+ *
+ * <b>NOTE</b><p>
+ * This class is ABSTRACT, and will be extended by each LTTng structure (Trac, Tracefile, Event, ...)
+ *
+ */
+public abstract class Jni_C_Common extends Jni_C_Constant
+{
+ // Native console printing function
+ protected native void ltt_printC(int libId, String string_to_print);
+
+ /**
+ * Java-side console printing function.<p>
+ *
+ * Call the C printing function to make sure all printing happen on the same side.
+ *
+ * @param msg The string to print in C.
+ */
+ public void printC(int libId, String msg) {
+ // Need to escape "%" for C printf
+ msg = msg.replaceAll("%", "%%");
+ ltt_printC(libId, msg);
+ }
+
+ /**
+ * Java-side console printing function that add carriage return. <p>
+ *
+ * Call the C printing function to make sure all printing happen on the same side.
+ *
+ * @param msg The string to print in C.
+ */
+ public void printlnC(int libId, String msg) {
+ printC(libId, msg + "\n");
+ }
+
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/JniTime.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/JniTime.java
new file mode 100644
index 0000000000..5f9303da5c
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/JniTime.java
@@ -0,0 +1,207 @@
+package org.eclipse.linuxtools.lttng.jni.common;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>JniTime</u></b>
+ * <p>
+ * Used to store (event, trace, tracefile, ...) timestamp.
+ *
+ * Mimic the behavior of the LttTime C structure.
+ */
+public class JniTime extends Jni_C_Constant implements Comparable<JniTime>
+{
+ private long time = 0;
+
+ /**
+ * Default constructor.<p>
+ *
+ * Note : Time will be set to 0.
+ *
+ */
+ public JniTime() {
+ time = 0;
+ }
+
+ /**
+ * Copy constructor.
+ *
+ * @param oldTime Reference to the JniTime you want to copy.
+ */
+ public JniTime(JniTime oldTime) {
+ time = oldTime.getTime();
+ }
+
+ /**
+ * Constructor with parameters.<p>
+ *
+ * "LTT style" constructor with Seconds et Nanoseconds
+ *
+ * @param newSec Seconds of the JniTime
+ * @param newNanoSec Nanoseconds of the JniTime
+ */
+ public JniTime(long newSec, long newNanoSec) {
+ time = (newSec * NANO) + newNanoSec;
+ }
+
+ /**
+ * Constructor with parameters.<p>
+ *
+ * Usual "nanosecond only" constructor.
+ *
+ * @param newNanoSecTime Time in nanoseconds
+ */
+ public JniTime(long newNanoSecTime) {
+ time = newNanoSecTime;
+ }
+
+ /**
+ * Second of the time.<p>
+ *
+ * Returns seconds, i.e. multiple of 1 000 000, of the stored nanoseconds time.
+ *
+ * @return Second of this time.
+ */
+ public long getSeconds() {
+ return (time / NANO);
+ }
+
+ /**
+ * Getter for the nanosecond of the time.<p>
+ *
+ * Returns nanoseconds part, i.e. modulo of 1 000 000, of the stored nanoseconds time.
+ *
+ * @return Nanoseconds of this time
+ */
+ public long getNanoSeconds() {
+ return time % NANO;
+ }
+
+ /**
+ * Full time, in nanoseconds.<p>
+ *
+ * @return Complete time in nanoseconds
+ */
+ public long getTime() {
+ return time;
+ }
+
+ /**
+ * Changes the current time for this object<p>
+ *
+ * @param newTime New time to set, in nanoseconds.
+ */
+ public void setTime(long newTime) {
+ time = newTime;
+ }
+
+ /*
+ * Populate this time object
+ *
+ * Note: This function is called from C side.
+ *
+ * @param newTime The time we want to populate
+ */
+ @SuppressWarnings("unused")
+ private void setTimeFromC(long newTime) {
+ time = newTime;
+ }
+
+ /**
+ * Comparaison operator smaller or equal than "<=" .<p>
+ *
+ * @param comparedTime The time we want to compare with this one
+ *
+ * @return true if compared time is smaller or equal, false otherwise
+ */
+ public boolean isSmallerOrEqual(JniTime comparedTime) {
+
+ // NOTE : We check <= instead of just <
+ // This mean the LEFT OPERAND (comparedTime) always prevails
+ if (this.getTime() <= comparedTime.getTime() ) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+
+ /**
+ * compareTo operator.<p>
+ *
+ * @param right The time we want to compare with this one
+ *
+ * @return int of value -1, 0 or 1, as the pased argument is bigger, equal or smaller than this time
+ */
+ public int compareTo(JniTime right) {
+ long leftTime = this.getTime();
+ long rightTime = right.getTime();
+
+ if ( leftTime < rightTime ) {
+ return -1;
+ }
+ else if ( leftTime > rightTime ) {
+ return 1;
+ }
+ else {
+ return 0;
+ }
+ }
+
+ /**
+ * Overrided equals for JniTime type
+ *
+ * @param The object we want to compare too
+ *
+ * @return true if the time is the same, false otherwise.
+ */
+ @Override
+ public boolean equals(Object obj) {
+ boolean returnedValue = false;
+
+ if ( obj instanceof JniTime ) {
+ if ( ((JniTime)obj).time == this.time ) {
+ returnedValue = true;
+ }
+ }
+
+ return returnedValue;
+ }
+
+ /**
+ * Overridden hash code for JniTime type
+ *
+ */
+ @Override
+ public int hashCode() {
+ return this.toString().hashCode();
+ }
+
+
+ /**
+ * toString() method.
+ * <u>Intended to debug</u><p>
+ *
+ * NOTE : We output the time in the same format as LTT (seconds and nanosecond separatly)
+ *
+ * @return String Attributes of the object concatenated in String
+ */
+ @Override
+ public String toString() {
+ String returnData = "";
+
+ returnData += "seconds : " + this.getSeconds() + "\n";
+ returnData += "nanoSeconds : " + this.getNanoSeconds() + "\n";
+
+ return returnData;
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/Jni_C_Constant.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/Jni_C_Constant.java
new file mode 100644
index 0000000000..5cf7a60aaf
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/Jni_C_Constant.java
@@ -0,0 +1,50 @@
+package org.eclipse.linuxtools.lttng.jni.common;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>Jni_C_Common</u></b>
+ * <p>
+ * Common constants and methods that should be shared between JNI objects.<p>
+ *
+ * This class is abstract and is intended to be extended by LTTng modules that need the constants.
+ */
+public abstract class Jni_C_Constant {
+
+ // Needed for native types
+ public static final int NULL = 0;
+
+ // C errno correspondance. Used to interpret LTT return value
+ public static final int EOK = 0;
+ public static final int EPERM = 1;
+ public static final int ERANGE = 34;
+
+ // Timestamps are in nanoseconds, this const ease up the math
+ public static final long NANO = 1000000000;
+
+ /**
+ * Default constructor
+ */
+ public Jni_C_Constant() {
+ }
+
+ /**
+ * "Alternate" .toString()<p>
+ *
+ * Simulates the way Java Object implements "toString()"
+ *
+ * @return The Java hashed UID of the object (i.e. : NAME@HASH)
+ */
+ public String getReferenceToString() {
+ return this.getClass().getName() + "@" + Integer.toHexString(this.hashCode());
+ }
+} \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/Jni_C_Pointer.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/Jni_C_Pointer.java
new file mode 100644
index 0000000000..3519dfe048
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/Jni_C_Pointer.java
@@ -0,0 +1,104 @@
+package org.eclipse.linuxtools.lttng.jni.common;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>Jni_C_Pointer</u></b>
+ * <p>
+ * Class pointer to handle properly "C pointer" <p>
+ *
+ * Can transparently handle pointer of 32 or 64 bits.
+ */
+public class Jni_C_Pointer extends Jni_C_Constant {
+
+ protected long ptr = NULL;
+ protected boolean isLong = true;
+
+ /**
+ * Default constructor.<p>
+ *
+ * Note : Pointer will be set to a 64bits "NULL".
+ */
+ public Jni_C_Pointer() {
+ ptr = NULL;
+ }
+
+ /**
+ * Constructor with parameters for 64bits pointers.
+ *
+ * @param newPtr long-converted (64 bits) C pointer.
+ */
+ public Jni_C_Pointer(long newPtr) {
+ ptr = newPtr;
+ isLong = true;
+ }
+
+ /**
+ * Constructor with parameters for 32bits pointers.
+ *
+ * @param newPtr int-converted (32 bits) C pointer.
+ */
+ public Jni_C_Pointer(int newPtr) {
+ ptr = (long)newPtr;
+ isLong = false;
+ }
+
+ /**
+ * Get the current pointer.
+ *
+ * @return The current pointer, in long.
+ */
+ public long getPointer() {
+ return ptr;
+ }
+
+ /**
+ * Set the pointer, as a 64bits pointer.
+ *
+ * @param newPtr long-converted (64 bits) C pointer.
+ */
+ public void setPointer(long newPtr) {
+ ptr = newPtr;
+ isLong = true;
+ }
+
+ /**
+ * Set the pointer, as a 64bits pointer.
+ *
+ * @param newPtr int-converted (32 bits) C pointer.
+ */
+ public void setPointer(int newPtr) {
+ ptr = newPtr;
+ isLong = false;
+ }
+
+ /**
+ * toString() method. <p>
+ *
+ * Convert the pointer to a nice looking int/long hexadecimal format.
+ *
+ * @return Attributes of the object concatenated in String
+ */
+ @Override
+ public String toString() {
+ String returnData = "0x";
+
+ if (isLong == true) {
+ returnData += Long.toHexString(ptr);
+ }
+ else {
+ returnData += Integer.toHexString((int) ptr);
+ }
+
+ return returnData;
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/Jni_C_Pointer_And_Library_Id.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/Jni_C_Pointer_And_Library_Id.java
new file mode 100644
index 0000000000..6e7f1d48ec
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/common/Jni_C_Pointer_And_Library_Id.java
@@ -0,0 +1,71 @@
+package org.eclipse.linuxtools.lttng.jni.common;
+
+public class Jni_C_Pointer_And_Library_Id extends Jni_C_Pointer {
+
+ // *** Library Id
+ // Needed to know which library we need to make our functions call in case several are loaded
+ // This make possible to use several different trace version at the same time
+ private int libraryId = -1;
+
+ /**
+ * Default constructor.<p>
+ *
+ * Note : Pointer will be set to a 64bits "NULL" and Id -1.
+ */
+ public Jni_C_Pointer_And_Library_Id() {
+ super();
+ libraryId = -1;
+ }
+
+ /**
+ * Constructor with parameters for 64bits pointers and library handle id.
+ *
+ * @param newPtr long-converted (64 bits) C pointer.
+ * @param newHandle a valid library id as int
+ */
+ public Jni_C_Pointer_And_Library_Id(int newId, long newPtr) {
+ super(newPtr);
+ libraryId = newId;
+ }
+
+ /**
+ * Constructor with parameters for 32bits pointers and library handle id.
+ *
+ * @param newPtr int-converted (32 bits) C pointer.
+ * @param newHandle a valid library id as int
+ */
+ public Jni_C_Pointer_And_Library_Id(int newId, int newPtr) {
+ super(newPtr);
+ libraryId = newId;
+ }
+
+ /**
+ * Copy constructor.<p>
+ *
+ * @param oldPointerAndId The old object to copy from.
+ */
+ public Jni_C_Pointer_And_Library_Id(Jni_C_Pointer_And_Library_Id oldPointerAndId) {
+ super(oldPointerAndId.ptr);
+ libraryId = oldPointerAndId.libraryId;
+ }
+
+ /**
+ * Get the library handle id currently in use.<p>
+ * Id is used to tell the C which version of the functions to call.<p>
+ *
+ * @return The current id
+ */
+ public int getLibraryId() {
+ return libraryId;
+ }
+
+ /**
+ * Set a new library id.<p>
+ * Id is used to tell the C which version of the functions to call.<p>
+ *
+ * @param newHandleId The new Id to use (must be a valid id for the C library).
+ */
+ public void setLibraryId(int newId) {
+ this.libraryId = newId;
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniEventException.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniEventException.java
new file mode 100644
index 0000000000..f87ef318a1
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniEventException.java
@@ -0,0 +1,25 @@
+package org.eclipse.linuxtools.lttng.jni.exception;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>JniEventException</u></b>
+ * <p>
+ * Basic exception class for the JniEvent class
+ */
+public class JniEventException extends JniException {
+ private static final long serialVersionUID = -5891749130387304519L;
+
+ public JniEventException(String errMsg) {
+ super(errMsg);
+ }
+} \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniEventOutOfRangeException.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniEventOutOfRangeException.java
new file mode 100644
index 0000000000..ccd8b996fc
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniEventOutOfRangeException.java
@@ -0,0 +1,28 @@
+package org.eclipse.linuxtools.lttng.jni.exception;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>JniEventOutOfRangeException</u></b>
+ * <p>
+ * Sub-exception type for the JniEventException type
+ * This exception type will get thrown when there is no more event of this type
+ * available
+ */
+public class JniEventOutOfRangeException extends JniEventException {
+ private static final long serialVersionUID = -4645877232795324541L;
+
+ public JniEventOutOfRangeException(String errMsg) {
+ super(errMsg);
+ }
+}
+
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniException.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniException.java
new file mode 100644
index 0000000000..1ba46b7d42
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniException.java
@@ -0,0 +1,27 @@
+package org.eclipse.linuxtools.lttng.jni.exception;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+
+/**
+ * <b><u>JniException</u></b>
+ * <p>
+ * Super class for JNI exception.
+ */
+public class JniException extends Exception {
+ private static final long serialVersionUID = -6620784221853154537L;
+
+ public JniException(String errMsg) {
+ super(errMsg);
+ }
+}
+
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniMarkerException.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniMarkerException.java
new file mode 100644
index 0000000000..b6f009b926
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniMarkerException.java
@@ -0,0 +1,25 @@
+package org.eclipse.linuxtools.lttng.jni.exception;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>JniMarkerException</u></b>
+ * <p>
+ * Basic Exception class for the JniMarker class
+ */
+public class JniMarkerException extends JniException {
+ private static final long serialVersionUID = -4694173610721983794L;
+
+ public JniMarkerException(String errMsg) {
+ super(errMsg);
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniMarkerFieldException.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniMarkerFieldException.java
new file mode 100644
index 0000000000..123e4714c2
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniMarkerFieldException.java
@@ -0,0 +1,25 @@
+package org.eclipse.linuxtools.lttng.jni.exception;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>JniMarkerFieldException</u></b>
+ * <p>
+ * Basic Exception class for the JniMarkerField class
+ */
+public class JniMarkerFieldException extends JniException {
+ private static final long serialVersionUID = 6066381741374806879L;
+
+ public JniMarkerFieldException(String errMsg) {
+ super(errMsg);
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniNoNextEventInTraceException.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniNoNextEventInTraceException.java
new file mode 100644
index 0000000000..76aaa5e28f
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniNoNextEventInTraceException.java
@@ -0,0 +1,28 @@
+package org.eclipse.linuxtools.lttng.jni.exception;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>JniNoNextEventInTraceException</u></b>
+ * <p>
+ * Sub-exception class type for JniTraceException
+ * This type will get thrown when we can't find any "next" event
+ * This should usually mean there is no more event in the trace
+
+ */
+public class JniNoNextEventInTraceException extends JniTraceException {
+ private static final long serialVersionUID = -2887528566100063849L;
+
+ public JniNoNextEventInTraceException(String errMsg) {
+ super(errMsg);
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniNoSuchEventException.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniNoSuchEventException.java
new file mode 100644
index 0000000000..478d07953a
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniNoSuchEventException.java
@@ -0,0 +1,28 @@
+package org.eclipse.linuxtools.lttng.jni.exception;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>JniNoSuchEventException</u></b>
+ * <p>
+ * Sub-exception type for the JniEventException type
+ * This exception type will get thrown when an event is unavailable
+ * This might happen at construction because some events type are not present in
+ * the trace
+ */
+public class JniNoSuchEventException extends JniEventException {
+ private static final long serialVersionUID = -4379712949891538051L;
+
+ public JniNoSuchEventException(String errMsg) {
+ super(errMsg);
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniOpenTraceFailedException.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniOpenTraceFailedException.java
new file mode 100644
index 0000000000..963f703b5f
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniOpenTraceFailedException.java
@@ -0,0 +1,27 @@
+package org.eclipse.linuxtools.lttng.jni.exception;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>JniOpenTraceFailedException</u></b>
+ * <p>
+ * Sub-exception class type for JniTraceException
+ * This type will get thrown when a trace fail to open
+ * Most likely to be caused by a bad tracepath
+ */
+public class JniOpenTraceFailedException extends JniTraceException {
+ private static final long serialVersionUID = 877769692366394895L;
+
+ public JniOpenTraceFailedException(String errMsg) {
+ super(errMsg);
+ }
+} \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTraceException.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTraceException.java
new file mode 100644
index 0000000000..b89cd0c78f
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTraceException.java
@@ -0,0 +1,25 @@
+package org.eclipse.linuxtools.lttng.jni.exception;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>JniTraceException</u></b>
+ * <p>
+ * Basic exception class for the JniTrace class
+ */
+public class JniTraceException extends JniException {
+ private static final long serialVersionUID = -6873007333085268143L;
+
+ public JniTraceException(String errMsg) {
+ super(errMsg);
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTraceVersionException.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTraceVersionException.java
new file mode 100644
index 0000000000..2eb3916545
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTraceVersionException.java
@@ -0,0 +1,25 @@
+package org.eclipse.linuxtools.lttng.jni.exception;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>JniTraceVersionException</u></b>
+ * <p>
+ * Basic exception class for the JniTraceVersion class
+ */
+public class JniTraceVersionException extends JniException {
+ private static final long serialVersionUID = -5891749123457304519L;
+
+ public JniTraceVersionException(String errMsg) {
+ super(errMsg);
+ }
+} \ No newline at end of file
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTracefileException.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTracefileException.java
new file mode 100644
index 0000000000..54a26a73dd
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTracefileException.java
@@ -0,0 +1,25 @@
+package org.eclipse.linuxtools.lttng.jni.exception;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>JniTracefileException</u></b>
+ * <p>
+ * Basic exception class for the JniTracefile class
+ */
+public class JniTracefileException extends JniException {
+ private static final long serialVersionUID = 5081317864491800084L;
+
+ public JniTracefileException(String errMsg) {
+ super(errMsg);
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTracefileWithoutEventException.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTracefileWithoutEventException.java
new file mode 100644
index 0000000000..e8cc5227d6
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/exception/JniTracefileWithoutEventException.java
@@ -0,0 +1,27 @@
+package org.eclipse.linuxtools.lttng.jni.exception;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+/**
+ * <b><u>JniTracefileWithoutEventException</u></b>
+ * <p>
+ * Sub-exception class type for JniTracefileException
+ * This type will get thrown when a trace file contain no readable events
+ * The proper course of action would usually be to ignore this useless trace file
+ */
+public class JniTracefileWithoutEventException extends JniTracefileException {
+ private static final long serialVersionUID = -8183967479236071261L;
+
+ public JniTracefileWithoutEventException(String errMsg) {
+ super(errMsg);
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/factory/JniTraceFactory.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/factory/JniTraceFactory.java
new file mode 100644
index 0000000000..ac15628331
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/factory/JniTraceFactory.java
@@ -0,0 +1,90 @@
+package org.eclipse.linuxtools.lttng.jni.factory;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+import org.eclipse.linuxtools.lttng.jni.JniTrace;
+import org.eclipse.linuxtools.lttng.jni.exception.JniException;
+import org.eclipse.linuxtools.lttng.jni.exception.JniTraceVersionException;
+import org.eclipse.linuxtools.lttng.jni_v2_3.JniTrace_v2_3;
+import org.eclipse.linuxtools.lttng.jni_v2_5.JniTrace_v2_5;
+import org.eclipse.linuxtools.lttng.jni_v2_6.JniTrace_v2_6;
+
+/**
+ * <b><u>JniTraceFactory</u></b>
+ * <p>
+ * This class factory is responsible of returning the correct JniTrace implementation from a (valid) trace path.<p>
+ *
+ * The different version supported are listed below and the same version string are expected to be returned by JniTraceVersion.<br>
+ * Each version need a different Lttv library so each need its liblttvtraceread-X.Y.so installed and available on the system.
+ *
+ */
+public class JniTraceFactory {
+
+ // ***
+ // Version string of the supported library version
+ // These will be used in the switch below to find the correct version
+ // ***
+ static final String TraceVersion_v2_3 = "2.3";
+ static final String TraceVersion_v2_5 = "2.5";
+ static final String TraceVersion_v2_6 = "2.6";
+
+ /*
+ * Default constructor is forbidden
+ */
+ private JniTraceFactory(){
+ }
+
+ /**
+ * Factory function : return the correct version of the JniTrace from a given path<p>
+ * NOTE : The correct Lttv library (liblttvtraceread-X.Y.so) need to be installed and accessible otherwise this
+ * function will return an Exception.
+ *
+ * If the path is wrong or if the library is not supported (bad version or missing library) an Exception will be throwed.
+ *
+ * @param path Path of the trace we want to open
+ * @param show_debug Should JniTrace print debug or not?
+ *
+ * @return a newly allocated JniTrace of the correct version
+ *
+ * @throws JniException
+ */
+ static public JniTrace getJniTrace(String path, boolean show_debug) throws JniException {
+
+ try {
+ JniTraceVersion traceVersion = new JniTraceVersion(path);
+
+ if ( traceVersion.getVersionAsString().equals(TraceVersion_v2_6) ) {
+ return new JniTrace_v2_6(path, show_debug);
+ }
+ else if ( traceVersion.getVersionAsString().equals(TraceVersion_v2_5) ) {
+ return new JniTrace_v2_5(path, show_debug);
+ }
+ else if ( traceVersion.getVersionAsString().equals(TraceVersion_v2_3) ) {
+ return new JniTrace_v2_3(path, show_debug);
+ }
+ else {
+ String errMsg = "\nERROR : Unrecognized/unsupported trace version." +
+ "\nLibrary reported a trace version " + traceVersion.getVersionAsString() + "." +
+ "\nMake sure you installed the Lttv library that support this version (look for liblttvtraceread-" + traceVersion.getVersionAsString() + ".so).\n";
+ throw new JniException(errMsg);
+ }
+ }
+ catch (JniTraceVersionException e) {
+ String errMsg = "\nERROR : Call to JniTraceVersion() failed." +
+ "\nThis usually means that the library (liblttvtraceread_loader.so) could not be found." +
+ "\nMake sure the LTTv library is installed and that your LD_LIBRARY_PATH is set correctly (see help for more details)\n.";
+
+ throw new JniException(errMsg);
+ }
+ }
+
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/factory/JniTraceVersion.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/factory/JniTraceVersion.java
new file mode 100644
index 0000000000..4b1e6f0e29
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni/factory/JniTraceVersion.java
@@ -0,0 +1,236 @@
+package org.eclipse.linuxtools.lttng.jni.factory;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+import org.eclipse.linuxtools.lttng.jni.exception.JniException;
+import org.eclipse.linuxtools.lttng.jni.exception.JniTraceVersionException;
+
+/**
+ * <b><u>JniTraceVersion</u></b>
+ * <p>
+ * This class is responsible of returning the correct version number of a trace at a certain given path.<p>
+ *
+ * The class will call the C library to get the correct version number from the trace.<p>
+ *
+ * Lttv library loader (liblttvtraceread_loader.so) and the default Lttv library (liblttvtraceread.so) must be installed on system and available to java.
+ *
+ */
+public class JniTraceVersion {
+
+ // Native access functions
+ protected native void ltt_getTraceVersion(String tracepath);
+
+ // Variables to store version number
+ private int majorNumber = 0;
+ private int minorNumber = 0;
+
+ // To store the given tracepath
+ private String tracepath = "";
+
+ // Was the trace read already?
+ private boolean wasTraceRead = false;
+
+ /**
+ * Default constructor.<p>
+ *
+ * Do nothing, readVersionFromTrace(path) will need to be called by the user
+ */
+ public JniTraceVersion() {
+ // Nothing to do
+ }
+
+ /**
+ * Constructor that takes a tracepath parameter.<p>
+ *
+ * This constructor read the version number from the trace, so it might throw.
+ *
+ * @param newTracepath The <b>directory</b> of the trace to read.
+ *
+ * @exception JniException If the library can not be loaded,if the path is wrong or if something go wrong during the read.
+ */
+ public JniTraceVersion(String newTracepath) throws JniTraceVersionException {
+ // Read the version number from the trace
+ readVersionFromTrace(newTracepath);
+ }
+
+ /**
+ * Copy constructor.
+ *
+ * @param oldVersion A reference to the JniTraceVersion to copy.
+ */
+ public JniTraceVersion(JniTraceVersion oldVersion) {
+ majorNumber = oldVersion.majorNumber;
+ minorNumber = oldVersion.minorNumber;
+ }
+
+ /*
+ * Read the version from the (already set) tracepath.<p>
+ *
+ * This version is used internally and will silently dismiss any exceptions.
+ *
+ */
+ private void readVersionNumberNofail() {
+ try {
+ readVersionFromTrace(tracepath);
+ }
+ catch(JniTraceVersionException e) {
+ // Yes, we do ignore exception.
+ }
+ }
+
+ /**
+ * Read the version from the (already set) tracepath.<p>
+ *
+ * This function throw if the library can not be loaded, if the path is wrong or if something go wrong during the read.
+ *
+ */
+ public void readVersionNumber() throws JniTraceVersionException {
+ readVersionFromTrace(tracepath);
+ }
+
+ /**
+ * Read the version from a given tracepath.<p>
+ * MajorVersion and MinorVersion should be set after a successful execution of this function.<br>
+ *
+ * This function throw if the library can not be loaded,if the path is wrong or if something go wrong during the read.
+ *
+ */
+ public void readVersionFromTrace(String newTracepath) throws JniTraceVersionException {
+
+ // Verify that the tracepath isn't obliviously wrong (null or empty)
+ if ( (newTracepath == null) || (newTracepath.equals("") ) ) {
+ throw new JniTraceVersionException("ERROR : Tracepath is null or empty! (readVersionNumber)");
+ }
+ else {
+ // Otherwise set the path in case it was changed
+ tracepath = newTracepath;
+ }
+
+ try {
+ // Load the C library here.
+ // If LD_LIBRARY_PATH is not set correctly this will raise a java.lang.UnsatisfiedLinkError
+ System.loadLibrary("lttvtraceread_loader");
+
+ // Assuming the C library loaded correctly, call the JNI here.
+ ltt_getTraceVersion(tracepath);
+
+ // We can now assume that the trace was read
+ wasTraceRead = true;
+ }
+ // The library was unable to load -> Lttv not installed or bad version of it?
+ catch (java.lang.UnsatisfiedLinkError e) {
+ throw new JniTraceVersionException("\nERROR : Could not get trace version. Is the library missing?" +
+ "\nMake sure your \"LD_LIBRARY_PATH\" is setted correctly (readVersionNumber)\n");
+ }
+ // Something else failed -> Possibly a bad tracepath was given
+ catch (Exception e) {
+ throw new JniTraceVersionException("\nERROR : Call to ltt_getTraceVersion failed. (readVersionNumber)\n");
+ }
+ }
+
+ /**
+ * Get major version number of the trace.<p>
+ * Note : readVersionFromTrace() will be called if it wasn't done but exception will be silently ignored.
+ *
+ * @return major version
+ */
+ public int getMajor() {
+ if ( wasTraceRead == false ) {
+ readVersionNumberNofail();
+ }
+
+ return majorNumber;
+ }
+
+ /**
+ * Get minor version number of the trace.<p>
+ * Note : readVersionFromTrace() will be called if it wasn't done but exception will be silently ignored.
+ *
+ * @return minor version
+ */
+ public int getMinor() {
+ if ( wasTraceRead == false ) {
+ readVersionNumberNofail();
+ }
+
+ return minorNumber;
+ }
+
+ /**
+ * Get full version number of the trace.<p>
+ * Note : readVersionFromTrace() will be called if it wasn't done but exception will be silently ignored.
+ *
+ * @return Full Version as float
+ */
+ public float getVersionAsFloat() {
+ if ( wasTraceRead == false ) {
+ readVersionNumberNofail();
+ }
+
+ return ((float)majorNumber + ((float)minorNumber)/10);
+ }
+
+ /**
+ * Get full version number of the trace.<p>
+ * Note : readVersionFromTrace() will be called if it wasn't done but exception will be silently ignored.
+ *
+ * @return Full Version as string
+ */
+ public String getVersionAsString() {
+ if ( wasTraceRead == false ) {
+ readVersionNumberNofail();
+ }
+
+ return majorNumber + "." + minorNumber;
+ }
+
+ /**
+ * Get for the current tracepath
+ *
+ * @return The tracepath was are currently using.
+ */
+ public String getTracepath() {
+ return tracepath;
+ }
+
+ /**
+ * Set for the tracepath.<p>
+ * NOTE : Changing this will reset the version number currently loaded.
+ * NOTE2 : readVersionFromTrace() will be called but exception will be silently ignored.
+ *
+ * @param newtracepath The net tracepath
+ */
+ public void setTracepath(String newtracepath) {
+ majorNumber = 0;
+ minorNumber = 0;
+ wasTraceRead = false;
+ tracepath = newtracepath;
+
+ // Call the read function. This will fill up all the number if it goes well.
+ readVersionNumberNofail();
+ }
+
+ /*
+ * This function is be called from the C side to assign the version number the Java variable.
+ */
+ private void setTraceVersionFromC(int newMajor, int newMinor) {
+ majorNumber = newMajor;
+ minorNumber = newMinor;
+ }
+
+
+ @Override
+ public String toString() {
+ return "JniTraceVersion [" + majorNumber + "." + minorNumber + "]";
+ }
+
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniEvent_v2_3.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniEvent_v2_3.java
new file mode 100644
index 0000000000..ac6368eb88
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniEvent_v2_3.java
@@ -0,0 +1,46 @@
+package org.eclipse.linuxtools.lttng.jni_v2_3;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+import java.util.HashMap;
+
+import org.eclipse.linuxtools.lttng.jni.JniEvent;
+import org.eclipse.linuxtools.lttng.jni.JniMarker;
+import org.eclipse.linuxtools.lttng.jni.JniTracefile;
+import org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id;
+import org.eclipse.linuxtools.lttng.jni.exception.JniException;
+
+/**
+ * <b><u>JniEvent_v2_3</u></b>
+ * <p>
+ * JniEvent version to support Lttng traceformat of version 2.3<br>
+ * This class extend abstract class JniEvent with (possibly) version specific implementation.<br>
+ * <p>
+ */
+public class JniEvent_v2_3 extends JniEvent {
+
+ /*
+ * Forbid access to the default constructor
+ */
+ protected JniEvent_v2_3() {
+ super();
+ }
+
+
+ public JniEvent_v2_3(JniEvent_v2_3 oldEvent) {
+ super(oldEvent);
+ }
+
+ public JniEvent_v2_3(Jni_C_Pointer_And_Library_Id newEventPtr, HashMap<Integer, JniMarker> newMarkersMap, JniTracefile newParentTracefile) throws JniException {
+ super(newEventPtr, newMarkersMap, newParentTracefile);
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniMarkerField_v2_3.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniMarkerField_v2_3.java
new file mode 100644
index 0000000000..c67e0a7de1
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniMarkerField_v2_3.java
@@ -0,0 +1,42 @@
+package org.eclipse.linuxtools.lttng.jni_v2_3;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+import org.eclipse.linuxtools.lttng.jni.JniMarkerField;
+import org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id;
+import org.eclipse.linuxtools.lttng.jni.exception.JniException;
+
+/**
+ * <b><u>JniMarkerField_v2_3</u></b>
+ * <p>
+ * JniMarkerField version to support Lttng traceformat of version 2.3<br>
+ * This class extend abstract class JniMarkerField with (possibly) version specific implementation.<br>
+ * <p>
+ */
+public class JniMarkerField_v2_3 extends JniMarkerField {
+
+ /*
+ * Forbid access to the default constructor
+ */
+ protected JniMarkerField_v2_3() {
+ super();
+ }
+
+
+ public JniMarkerField_v2_3(JniMarkerField_v2_3 oldMarkerField) {
+ super(oldMarkerField);
+ }
+
+ public JniMarkerField_v2_3(Jni_C_Pointer_And_Library_Id newMarkerFieldPtr) throws JniException {
+ super(newMarkerFieldPtr);
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniMarker_v2_3.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniMarker_v2_3.java
new file mode 100644
index 0000000000..58ca0655a2
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniMarker_v2_3.java
@@ -0,0 +1,59 @@
+package org.eclipse.linuxtools.lttng.jni_v2_3;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+import org.eclipse.linuxtools.lttng.jni.JniMarker;
+import org.eclipse.linuxtools.lttng.jni.JniMarkerField;
+import org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id;
+import org.eclipse.linuxtools.lttng.jni.exception.JniException;
+
+/**
+ * <b><u>JniMarker_v2_3</u></b>
+ * <p>
+ * JniMarker version to support Lttng traceformat of version 2.3<br>
+ * This class extend abstract class JniMarker with (possibly) version specific implementation.<br>
+ * <p>
+ */
+public class JniMarker_v2_3 extends JniMarker {
+
+ /*
+ * Forbid access to the default constructor
+ */
+ protected JniMarker_v2_3() {
+ super();
+ }
+
+
+ public JniMarker_v2_3(JniMarker_v2_3 oldMarker) {
+ super(oldMarker);
+ }
+
+ public JniMarker_v2_3(Jni_C_Pointer_And_Library_Id newMarkerPtr) throws JniException {
+ super(newMarkerPtr);
+ }
+
+
+ /**
+ * Allocate (call constructor for) a new JniMarkerField.<p>
+ *
+ * This method is made to bypass limitation related to abstract class, see comment in JniMarker
+ *
+ * @return JniMarkerField a newly allocated JniMarkerField
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniMarker
+ */
+ @Override
+ public JniMarkerField allocateNewJniMarkerField(Jni_C_Pointer_And_Library_Id newMarkerFieldPtr) throws JniException {
+ return new JniMarkerField_v2_3(newMarkerFieldPtr);
+ }
+
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniParser_v2_3.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniParser_v2_3.java
new file mode 100644
index 0000000000..d00636e4be
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniParser_v2_3.java
@@ -0,0 +1,31 @@
+package org.eclipse.linuxtools.lttng.jni_v2_3;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+import org.eclipse.linuxtools.lttng.jni.JniParser;
+
+/**
+ * <b><u>JniParser_v2_3</u></b>
+ * <p>
+ * JniParser version to support Lttng traceformat of version 2.3<br>
+ * This class extend abstract class JniParser with (possibly) version specific implementation.<br>
+ * <p>
+ */
+public class JniParser_v2_3 extends JniParser {
+
+ /*
+ * Forbid access to the default constructor
+ */
+ protected JniParser_v2_3() {
+ super();
+ }
+}
diff --git a/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniTrace_v2_3.java b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniTrace_v2_3.java
new file mode 100644
index 0000000000..5794d57dc5
--- /dev/null
+++ b/lttng/org.eclipse.linuxtools.lttng.jni/src/org/eclipse/linuxtools/lttng/jni_v2_3/JniTrace_v2_3.java
@@ -0,0 +1,87 @@
+package org.eclipse.linuxtools.lttng.jni_v2_3;
+/*******************************************************************************
+ * Copyright (c) 2009 Ericsson
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William Bourque (wbourque@gmail.com) - Initial API and implementation
+ *******************************************************************************/
+
+import org.eclipse.linuxtools.lttng.jni.JniTrace;
+import org.eclipse.linuxtools.lttng.jni.JniTracefile;
+import org.eclipse.linuxtools.lttng.jni.common.Jni_C_Pointer_And_Library_Id;
+import org.eclipse.linuxtools.lttng.jni.exception.JniException;
+
+/**
+ * <b><u>JniTrace_v2_3</u></b>
+ * <p>
+ * JniTrace version to support Lttng traceformat of version 2.3.<br>
+ * This class extend abstract class JniTrace with (possibly) version specific implementation.<br>
+ *
+ * It also make sure the correct library is loaded by liblttvlibraryloader.so
+ * <p>
+ */
+public class JniTrace_v2_3 extends JniTrace {
+
+ // This is the dynamic library name that is passed to the library loader (liblttvlibraryloader.so) to load.
+ // It needs to be a complete name, like "libXYZ.so", unlike java that would take "XYZ". It could also take a complete path.
+ // The library need to be accessible, i.e. LD_LIBRARY_PATH need to be set correctly.
+ private static final String LIBRARY_NAME = "liblttvtraceread-2.3.so";
+
+ /*
+ * Forbid access to the default constructor
+ */
+ protected JniTrace_v2_3() {
+ super();
+ }
+
+
+ public JniTrace_v2_3(String newpath) throws JniException {
+ super(newpath);
+ }
+
+ public JniTrace_v2_3(String newpath, boolean newPrintDebug) throws JniException {
+ super(newpath, newPrintDebug);
+ }
+
+
+ public JniTrace_v2_3(JniTrace_v2_3 oldTrace) {
+ super(oldTrace);
+ }
+
+ public JniTrace_v2_3(Jni_C_Pointer_And_Library_Id newPtr, boolean newPrintDebug) throws JniException {
+ super(newPtr, newPrintDebug);
+ }
+
+
+ /**
+ * Initialize the C library.<p>
+ *
+ * Call the library loader with the .so we wish to load.
+ *
+ * @return The library id if sucessful, -1 if something went wrong
+ */
+ @Override
+ public int initializeLibrary() {
+ return ltt_initializeHandle(LIBRARY_NAME);
+ }
+
+
+ /**
+ * Allocate (call constructor for) a new JniTracefile.<p>
+ *
+ * This method is made to bypass limitation related to abstract class, see comment in JniTrace
+ *
+ * @return JniTracefile a newly allocated JniTracefile
+ *
+ * @see org.eclipse.linuxtools.lttng.jni.JniTrace
+ */
+ @Override</