2010-09-17 Francois Chouinard <fchouinard@gmail.com> Contribution for Bug325662
authorFrancois Chouinard <fchouinard@gmail.com>
Mon, 20 Sep 2010 14:41:11 +0000 (14:41 +0000)
committerFrancois Chouinard <fchouinard@gmail.com>
Mon, 20 Sep 2010 14:41:11 +0000 (14:41 +0000)
* src/org/eclipse/linuxtools/lttng/control/LttngSyntheticEventProvider.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/lttng/event/LttngEvent.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/lttng/request/LttngSyntEventRequest.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/lttng/state/experiment/StateExperimentManager.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/lttng/state/trace/StateTraceManager.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/lttng/trace/LTTngTrace.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/lttng/control/LTTngSyntheticEventProviderTest.java: Adjusted unit test
* src/org/eclipse/linuxtools/lttng/LttngTestPreparation.java: Adjusted unit test
* src/org/eclipse/linuxtools/lttng/ui/views/common/AbsTimeUpdateView.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramRequest.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/lttng/ui/views/PerspectiveFactory.java: Fixed perspective ID
* src/org/eclipse/linuxtools/tmf/component/TmfDataProvider.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/component/TmfEventProvider.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/event/TmfEvent.java: Support for single event
* src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/request/ITmfDataRequest.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/request/TmfCoalescedDataRequest.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/request/TmfCoalescedEventRequest.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/request/TmfDataRequest.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/request/TmfEventRequest.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/tests/component/TmfEventProviderTest.java: Adjusted unit test
* src/org/eclipse/linuxtools/tmf/tests/experiment/TmfExperimentTest.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/tests/experiment/TmfMultiTraceExperimentTest.java:Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/tests/request/TmfCoalescedDataRequestTest.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/tests/request/TmfCoalescedEventRequestTest.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/tests/request/TmfDataRequestTest.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/tests/request/TmfEventRequestTest.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/tests/trace/TmfExperimentTest.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/tests/trace/TmfTraceTest.java: Adjusted to new handleData() API
* stubs/org/eclipse/linuxtools/tmf/component/TmfSyntheticEventProviderStub.java: Adjusted to new handleData() API
* stubs/org/eclipse/linuxtools/tmf/request/TmfDataRequestStub.java: Adjusted to new handleData() API
* stubs/org/eclipse/linuxtools/tmf/request/TmfEventRequestStub.java: Adjusted to new handleData() API
* src/org/eclipse/linuxtools/tmf/ui/viewers/events/TmfEventsTable.java: Adjusted to new handleData() API

40 files changed:
org.eclipse.linuxtools.lttng.headless/src/TmfTraceTest.java
org.eclipse.linuxtools.lttng.tests/ChangeLog
org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/LttngTestPreparation.java
org.eclipse.linuxtools.lttng.tests/src/org/eclipse/linuxtools/lttng/control/LTTngSyntheticEventProviderTest.java
org.eclipse.linuxtools.lttng.ui/ChangeLog
org.eclipse.linuxtools.lttng.ui/plugin.xml
org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/PerspectiveFactory.java
org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/common/AbsTimeUpdateView.java
org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramRequest.java
org.eclipse.linuxtools.lttng/ChangeLog
org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/control/LttngSyntheticEventProvider.java
org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/event/LttngEvent.java
org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/request/LttngSyntEventRequest.java
org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/experiment/StateExperimentManager.java
org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/trace/StateTraceManager.java
org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/trace/LTTngTrace.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/component/TmfEventProviderTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/experiment/TmfExperimentTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/experiment/TmfMultiTraceExperimentTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfCoalescedDataRequestTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfCoalescedEventRequestTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfDataRequestTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfEventRequestTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfExperimentTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfTraceTest.java
org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/component/TmfSyntheticEventProviderStub.java
org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/request/TmfDataRequestStub.java
org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/request/TmfEventRequestStub.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/events/TmfEventsTable.java
org.eclipse.linuxtools.tmf/ChangeLog
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfDataProvider.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfEventProvider.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfEvent.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/ITmfDataRequest.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfCoalescedDataRequest.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfCoalescedEventRequest.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfDataRequest.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfEventRequest.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/TmfTrace.java

index be3636ed5b7ff7f1ba88036b0302a913f2559c63..6775ea75145e2fa8b859f3dea7de4ef36eaf5a4a 100644 (file)
@@ -80,15 +80,11 @@ public class TmfTraceTest extends TmfEventRequest<LttngEvent> {
 
        }
 
-
        @Override
-    public void handleData() {
-        LttngEvent[] result = getData();
-        
-        LttngEvent evt = (result.length > 0) ? result[0] : null;
-        
-        if ( (evt != null) && (PARSE_EVENTS) ) {
-            ((LttngEvent) evt).getContent().getFields();
+    public void handleData(LttngEvent event) {
+               super.handleData(event);
+        if ( (event != null) && (PARSE_EVENTS) ) {
+            ((LttngEvent) event).getContent().getFields();
             
             // *** Uncomment the following to print the parsed content
             // Warning : this is VERY intensive
index 5ddc74b84f3533cb3838fea139dcb5315b6a6309..2687be57033e035642de1a23bea90b8dd3f910d7 100644 (file)
@@ -1,3 +1,8 @@
+2010-09-17  Francois Chouinard  <fchouinard@gmail.com>
+
+       * src/org/eclipse/linuxtools/lttng/control/LTTngSyntheticEventProviderTest.java: Adjusted unit test
+       * src/org/eclipse/linuxtools/lttng/LttngTestPreparation.java: Adjusted unit test
+
 2010-09-15  Francois Chouinard  <fchouinard@gmail.com>
 
        * src/org/eclipse/linuxtools/lttng/control/LTTngSyntheticEventProviderTest.java: Problematic test
index 623a7154e68c82be50ce5f48e6626628f7ffb1fb..58c3f4b394f61c9f88df5d1e87e3ccb5a0e1b879 100644 (file)
@@ -209,14 +209,10 @@ public abstract class LttngTestPreparation extends TestCase {
        
                // request
                validSequence = true;
-               TmfEventRequest<T> request = new TmfEventRequest<T>(k,
-                               trange, TmfDataRequest.ALL_DATA, DEFAULT_CHUNK) {
+               TmfEventRequest<T> request = new TmfEventRequest<T>(k, trange, TmfDataRequest.ALL_DATA, DEFAULT_CHUNK) {
        
                        @Override
-                       public void handleData() {
-                               T[] result = getData();
-       
-                               T event = (result.length > 0) ? result[0] : null;
+                       public void handleData(T event) {
                                if (event == null) {
                                        System.out
                                                        .println("Syntheric Event Received is null, after event: "
@@ -301,14 +297,10 @@ public abstract class LttngTestPreparation extends TestCase {
        
                // request
                validSequence = true;
-               TmfEventRequest<T> request = new TmfEventRequest<T>(k,
-                               trange, TmfDataRequest.ALL_DATA, DEFAULT_CHUNK) {
+               TmfEventRequest<T> request = new TmfEventRequest<T>(k, trange, TmfDataRequest.ALL_DATA, DEFAULT_CHUNK) {
        
                        @Override
-                       public void handleData() {
-                               T[] result = getData();
-       
-                               T event = (result.length > 0) ? result[0] : null;
+                       public void handleData(T event) {
                                if (event == null) {
                                        System.out
                                                        .println("Syntheric Event Received is null, after event: "
index 285b3cd431eefc62708242a5bd2beb0da9c3b2fe..ae1536ce4fe7b6efff3e4eeb621c79edad98ef17 100644 (file)
@@ -12,6 +12,9 @@
 package org.eclipse.linuxtools.lttng.control;
 
 import org.eclipse.linuxtools.lttng.LttngTestPreparation;
+import org.eclipse.linuxtools.lttng.event.LttngEvent;
+import org.eclipse.linuxtools.tmf.experiment.TmfExperiment;
+import org.eclipse.linuxtools.tmf.request.TmfEventRequest;
 
 public class LTTngSyntheticEventProviderTest extends LttngTestPreparation {
        // ========================================================================
@@ -19,29 +22,31 @@ public class LTTngSyntheticEventProviderTest extends LttngTestPreparation {
        // ========================================================================
 
        public void testPlainDataRequest() {
-//             // prepare
-//             init();
-//             TmfExperiment<LttngEvent> experiment = prepareExperimentToTest();
-//             TmfEventRequest<LttngEvent> request = prepareEventRequest(LttngEvent.class, 0, 31);
-//
-//             // execute
-//             experiment.sendRequest(request);
-//             try {
-//                     request.waitForCompletion();
-//             } catch (InterruptedException e) {
-//                     e.printStackTrace();
-//             }
-//
-//             // finish
-//             assertEquals("Unexpected eventCount", 15316, feventCount);
-//             boolean expected = true;
-//             assertEquals("Events received out of expected order", expected, validSequence);
+               // prepare
+               init();
+               TmfExperiment<LttngEvent> experiment = prepareExperimentToTest();
+               TmfEventRequest<LttngEvent> request = prepareEventRequest(
+                               LttngEvent.class, 0, 31);
+
+               // execute
+               experiment.sendRequest(request);
+               try {
+                       request.waitForCompletion();
+               } catch (InterruptedException e) {
+                       e.printStackTrace();
+               }
+
+               // finish
+               assertEquals("Unexpected eventCount", 15316, feventCount);
+               boolean expected = true;
+               assertEquals("Events received out of expected order", expected,
+                               validSequence);
        }
 
-       /**
-        * 
-        */
-       public void testSyntheticEventRequest() {
+//     /**
+//      * 
+//      */
+//     public void testSyntheticEventRequest() {
 //             init();
 //             // Create a new Experiment manager context
 //             IStateExperimentManager expManager = prepareExperimentContext(false);
@@ -57,36 +62,35 @@ public class LTTngSyntheticEventProviderTest extends LttngTestPreparation {
 //             expManager.experimentSelected(this, experiment);
 //
 //             // Obtain the singleton event provider
-//             LttngSyntheticEventProvider synProvider = LttngCoreProviderFactory.getEventProvider();
+//             LttngSyntheticEventProvider synProvider = LttngCoreProviderFactory
+//                             .getEventProvider();
 //
 //             // prepare synthetic event requests
 //             boolean printExpectedEvents = false;
 //             TmfEventRequest<LttngSyntheticEvent> request1 = prepareEventRequest(LttngSyntheticEvent.class, 5, 9,
 //                             printExpectedEvents); /* 2001 events */
-//             TmfEventRequest<LttngSyntheticEvent> request2 = prepareEventRequest2(LttngSyntheticEvent.class, 11, 13,
+//             TmfEventRequest<LttngSyntheticEvent> request2 = prepareEventRequest(LttngSyntheticEvent.class, 11, 13,
 //                             printExpectedEvents); /* 1001 events */
 //
 //             // execute
 //             synProvider.sendRequest(request1);
-//             System.out.println("Request1 sent");
 //             try {
 //                     request1.waitForCompletion();
 //             } catch (InterruptedException e) {
 //                     e.printStackTrace();
 //             }
-//             System.out.println("Event Count=" + feventCount);
+//             System.out.println("EventCount " + feventCount);
 //
 //             synProvider.sendRequest(request2);
-//             System.out.println("Request2 sent");
 //             try {
 //                     request2.waitForCompletion();
 //             } catch (InterruptedException e) {
 //                     e.printStackTrace();
 //             }
-//             System.out.println("Event Count=" + feventCount);
+//             System.out.println("EventCount " + feventCount);
 //
 //             // finish
 //             assertEquals("Unexpected eventCount", 3002, feventCount);
-       }
+//     }
 
 }
\ No newline at end of file
index da4f8bc0544addcb97efc9943c5c0f5dcfea6cc4..e8d2536918c64f7cab5dee42a64f221568b51855 100644 (file)
@@ -1,3 +1,10 @@
+2010-09-17  Francois Chouinard  <fchouinard@gmail.com>
+
+       * plugin.xml: Fixed perspective ID
+       * src/org/eclipse/linuxtools/lttng/ui/views/common/AbsTimeUpdateView.java: Adjusted to new handleData() API 
+       * src/org/eclipse/linuxtools/lttng/ui/views/histogram/HistogramRequest.java: Adjusted to new handleData() API
+       * src/org/eclipse/linuxtools/lttng/ui/views/PerspectiveFactory.java: Fixed perspective ID
+
 2010-09-15  Francois Chouinard  <fchouinard@gmail.com>
 
        * src/org/eclipse/linuxtools/lttng/ui/views/statistics/StatisticsView.java: ExecutionType update
index e9fd478e9e1963106cb5eff00036ed20a3e352b4..1a00545379d24aae159dc80654120ddd16ff5a9d 100644 (file)
@@ -2,7 +2,7 @@
 <?eclipse version="3.4"?>
 <plugin>
    <extension
-         id="org,eclipse.linuxtools.lttng.ui.perspective"
+         id="org.eclipse.linuxtools.lttng.ui.perspective"
          name="%extension.name.0"
          point="org.eclipse.ui.perspectives">
       <perspective
index bd28bc3c8269f83360af1b43ce93169d075cb380..081bd4d1bed22eff1739012a6afd320c417f359b 100644 (file)
@@ -31,6 +31,9 @@ import org.eclipse.ui.IPerspectiveFactory;
  */
 public class PerspectiveFactory implements IPerspectiveFactory {
 
+       // Perspective ID
+    public static final String ID = "org.eclipse.linuxtools.lttng.ui.perspective";
+       
     // LTTng views
     private static final String PROJECT_VIEW_ID      = ProjectView.ID;
     private static final String CONTROL_VIEW_ID      = ControlView.ID;
index ec493071609045f721cf6da438500450277f86dd..c461ae6917f8356a8f5d10d3c482675f7fbf0c84 100644 (file)
@@ -26,7 +26,6 @@ import org.eclipse.linuxtools.lttng.request.RequestStartedSignal;
 import org.eclipse.linuxtools.lttng.state.evProcessor.ITransEventProcessor;
 import org.eclipse.linuxtools.lttng.ui.TraceDebug;
 import org.eclipse.linuxtools.lttng.ui.model.trange.ItemContainer;
-import org.eclipse.linuxtools.tmf.event.TmfEvent;
 import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.experiment.TmfExperiment;
@@ -373,26 +372,30 @@ public abstract class AbsTimeUpdateView extends TmfView implements
                         * org.eclipse.linuxtools.lttng.request.LttngSyntEventRequest#handleData
                         * ()
                         */
-//                     int handleDataCount = 0;
-//                     int handleDataValidCount = 0;
+////                   int handleDataCount = 0;
+////                   int handleDataValidCount = 0;
+//                     @Override
+//                     public void handleData() {
+//                             LttngSyntheticEvent[] result = getData();
+//     
+//                             TmfEvent evt = (result.length > 0) ? result[0] : null;
+////                           handleDataCount++;
+
                        @Override
-                       public void handleData() {
-                               LttngSyntheticEvent[] result = getData();
-       
-                               TmfEvent evt = (result.length > 0) ? result[0] : null;
-//                             handleDataCount++;
-                               if (evt != null) {
+                       public void handleData(LttngSyntheticEvent event) {
+                               super.handleData(event);
+                               if (event != null) {
 //                                     handleDataValidCount++;
-                                       LttngSyntheticEvent synEvent = (LttngSyntheticEvent) evt;
+                                       LttngSyntheticEvent synEvent = (LttngSyntheticEvent) event;
                                        // process event
                                        SequenceInd indicator = synEvent.getSynType();
                                        if (indicator == SequenceInd.BEFORE
                                                        || indicator == SequenceInd.AFTER) {
-                                               processor.process(evt, synEvent.getTraceModel());
+                                               processor.process(event, synEvent.getTraceModel());
                                        } else if (indicator == SequenceInd.STARTREQ) {
                                                handleRequestStarted();
                                        } else if (indicator == SequenceInd.ENDREQ) {
-                                               processor.process(evt, synEvent.getTraceModel());
+                                               processor.process(event, synEvent.getTraceModel());
                                                // handleCompleted();
                                        }
        
@@ -403,7 +406,7 @@ public abstract class AbsTimeUpdateView extends TmfView implements
                                                        modelInputChanged(this, false);
        
                                                        if (TraceDebug.isDEBUG()) {
-                                                               frunningTimeStamp = evt.getTimestamp();
+                                                               frunningTimeStamp = event.getTimestamp();
                                                                TraceDebug.debug("handled: " + fCount + " sequence: " + synEvent.getSynType());
                                                        }
        
index 4426326b5adf3320eee4d54778a6c45cbc4a8e80..c21816d19f85833c630614981fe3ffbef81e5461 100644 (file)
@@ -80,11 +80,15 @@ public class HistogramRequest extends TmfEventRequest<LttngEvent> {
         * HandleData function : will be called by TMF each time a new event is receive for the request.<p>
         * Calculation for the content is done here.
         */
-       @Override
-    public void handleData() {
-        LttngEvent[] result = getData();
-        LttngEvent event = (result.length > 0) ? result[0] : null;
+//     @Override
+//    public void handleData() {
+//        LttngEvent[] result = getData();
+//        LttngEvent event = (result.length > 0) ? result[0] : null;
         
+       @Override
+    public void handleData(LttngEvent event) {
+               super.handleData(event);
+
         // *** FIXME ***
        // *** EVIL BUG ***
         // The request by timerange only does not work! (see constructor above) 
@@ -93,23 +97,21 @@ public class HistogramRequest extends TmfEventRequest<LttngEvent> {
        //
         if (event != null) {
         
-               LttngEvent tmpEvent = (LttngEvent) event;
-
 //                     Tracer.trace("Hst: " + event.getTimestamp());
                
                // This check is linked to the evil fix mentionned above
-               if ( ( tmpEvent.getTimestamp().getValue() >= parentCanvas.getHistogramContent().getStartTime() ) &&
-                        ( tmpEvent.getTimestamp().getValue() <= parentCanvas.getHistogramContent().getEndTime() ) )
+               if ( ( event.getTimestamp().getValue() >= parentCanvas.getHistogramContent().getStartTime() ) &&
+                        ( event.getTimestamp().getValue() <= parentCanvas.getHistogramContent().getEndTime() ) )
                {
                        
                        // Distance (in time) between this event and the last one we read
-                       long distance = ( tmpEvent.getTimestamp().getValue() - lastRangeTime );
+                       long distance = ( event.getTimestamp().getValue() - lastRangeTime );
                                
                        // Check if we changed of interval (the distance is higher than the interval time)
                                if  ( distance > parentCanvas.getHistogramContent().getElementsTimeInterval() ) {
                                        
                                        parentCanvas.getHistogramContent().getElementByIndex(lastInterval).intervalNbEvents = nbEventsInInterval;
-                                       lastRangeTime = tmpEvent.getTimestamp().getValue();
+                                       lastRangeTime = event.getTimestamp().getValue();
                                        
                                        // * NOTE *
                                        // We can skip several interval at once, so we need to find what was our interval now
index b501636cb15c1f391b635350032b468e6bd4a419..ea0cb071bdce18a3451c3d50dbb284154612e9e4 100644 (file)
@@ -1,3 +1,12 @@
+2010-09-17  Francois Chouinard  <fchouinard@gmail.com>
+
+       * src/org/eclipse/linuxtools/lttng/control/LttngSyntheticEventProvider.java: Adjusted to new handleData() API
+       * src/org/eclipse/linuxtools/lttng/event/LttngEvent.java: Adjusted to new handleData() API
+       * src/org/eclipse/linuxtools/lttng/request/LttngSyntEventRequest.java: Adjusted to new handleData() API
+       * src/org/eclipse/linuxtools/lttng/state/experiment/StateExperimentManager.java: Adjusted to new handleData() API
+       * src/org/eclipse/linuxtools/lttng/state/trace/StateTraceManager.java: Adjusted to new handleData() API
+       * src/org/eclipse/linuxtools/lttng/trace/LTTngTrace.java: Adjusted to new handleData() API
+
 2010-09-15  Francois Chouinard  <fchouinard@gmail.com>
 
        * src/org/eclipse/linuxtools/lttng/trace/LTTngExperiment.java: ExecutionType update
index 4af8017b7af444437fe7a3374b038c0ef09d51e0..821c6c8ab22978238b1f5a12818259e144227e5e 100644 (file)
@@ -51,10 +51,10 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
        // ========================================================================
        // Data
        // ========================================================================
+
        public static final int BLOCK_SIZE = 1;
        public static final int NB_EVENTS  = 1;
-       public static final int QUEUE_SIZE = 1; // lttng specific, one event at a
-                                                                                       // time
+       public static final int QUEUE_SIZE = 1; // lttng specific, one event at a time
 
        // TmfDataProvider<LttngEvent> fExtProvider = null;
        private ITmfDataRequest<LttngSyntheticEvent> fmainRequest = null;
@@ -64,7 +64,8 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
        private int fMainReqEventCount = 0;
        volatile boolean startIndSent = false;
        private LTTngTreeNode fExperiment = null;
-       private ITransEventProcessor fstateUpdateProcessor = StateEventToHandlerFactory.getInstance();
+       private ITransEventProcessor fstateUpdateProcessor = StateEventToHandlerFactory
+                       .getInstance();
        private boolean waitForRequest = false;
 
        // ========================================================================
@@ -82,12 +83,15 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
                // the framework
                TmfEventSource source = new TmfEventSource(this);
                LttngEventType dtype = new LttngEventType();
-               LttngTimestamp statusTimeStamp = new LttngTimestamp(TmfTimestamp.Zero);
+               LttngTimestamp statusTimeStamp = new LttngTimestamp(
+                               TmfTimestamp.Zero);
 
-               fStatusEvent = new LttngSyntheticEvent(null, statusTimeStamp, source, dtype, null, null, null);
+               fStatusEvent = new LttngSyntheticEvent(null, statusTimeStamp, source,
+                               dtype, null, null, null);
                fStatusEvent.setSequenceInd(SequenceInd.STARTREQ);
 
-               fStatusEventAck = new LttngSyntheticEvent(null, statusTimeStamp, source, dtype, null, null, null);
+               fStatusEventAck = new LttngSyntheticEvent(null, statusTimeStamp,
+                               source, dtype, null, null, null);
                fStatusEventAck.setSequenceInd(SequenceInd.ACK);
        }
 
@@ -97,7 +101,8 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
 
        @SuppressWarnings("unchecked")
        @Override
-       public ITmfContext armRequest(final ITmfDataRequest<LttngSyntheticEvent> request) {
+       public ITmfContext armRequest(
+                       final ITmfDataRequest<LttngSyntheticEvent> request) {
                // validate
                // make sure we have the right type of request
                if (!(request instanceof ITmfEventRequest<?>)) {
@@ -136,7 +141,8 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
                for (IStateTraceManager traceManager : fEventProviderRequests.keySet()) {
 
                        // restore trace state system to nearest check point
-                       TmfTimestamp checkPoint = traceManager.restoreCheckPointByTimestamp(reqWindow.getStartTime());
+                       TmfTimestamp checkPoint = traceManager
+                                       .restoreCheckPointByTimestamp(reqWindow.getStartTime());
 
                        // adjust start time bound to check point
 
@@ -169,28 +175,21 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
 
                                private final long fDispatchTime = getDispatchTime().getValue();
                                private final LttngTraceState fTraceModel = getTraceModel();
-                               private LttngSyntheticEvent[] fresult = new LttngSyntheticEvent[1];
 
                                /*
                                 * (non-Javadoc)
                                 * 
-                                * @see org.eclipse.linuxtools.lttng.control.LttngEventRequest#handleData ()
+                                * @see org.eclipse.linuxtools.lttng.control.LttngEventRequest#handleData()
                                 */
                                @Override
-                               public void handleData() {
-                                       LttngEvent[] events = getData();
-
-                                       // Tracer.trace("Sep: " + events[0].getTimestamp());
-
-                                       if (events.length > 0) {
-                                               handleIncomingData(events[0]);
+                               public void handleData(LttngEvent event) {
+                                       super.handleData(event);
+                                       if (event != null) {
+                                               handleIncomingData(event);
                                        } else {
                                                TraceDebug.debug("handle data received with no data");
-                                               // handleProviderDone(getTraceModel());
-                                               // done();
                                        }
                                }
-
                                /*
                                 * (non-Javadoc)
                                 * 
@@ -200,10 +199,9 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
                                public void done() {
                                        // mark this sub-request as completed
                                        super.done();
-                                       handleProviderDone();
-                                       // super.done();
+                                       handleProviderDone(getTraceModel());
                                }
-
+                               
                                /**
                                 * Trigger the Analysis and sequential control of the events.
                                 * 
@@ -212,43 +210,29 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
                                private void handleIncomingData(LttngEvent e) {
                                        long eventTime = e.getTimestamp().getValue();
 
-                                       TmfTrace<LttngEvent> inTrace = e.getParentTrace();
+                                       TmfTrace<LttngEvent> inTrace =  e.getParentTrace();
                                        if (!(inTrace == getTrace())) {
-                                               // System.out.println("Event from a different trace discarded");
                                                return;
                                        }
-
+                                       
                                        // queue the new event data and an ACK
                                        updateSynEvent(e);
 
                                        // If time at or above requested time, update application
                                        if (eventTime >= fDispatchTime) {
-                                               // Load synthetic event as the result data
-                                               fresult[0] = syntheticEvent;
-
-                                               // BEFORE UPDATE : update to the before state-update handlers
+                                               // Before update
                                                syntheticEvent.setSequenceInd(SequenceInd.BEFORE);
-                                               // queueResult(syntheticEvent);
-                                               // queueResult(syntheticAckIndicator);
-                                               fmainRequest.setData(fresult);
-                                               fmainRequest.handleData();
-                                               // result[0] = syntheticAckIndicator;
-                                               // fmainRequest.setData(result);
-                                               // fmainRequest.handleData();
-
-                                               // STATE UPDATE: local handlers
+                                               fmainRequest.handleData(syntheticEvent);
+                                               fmainRequest.handleData(syntheticAckIndicator);
+
+                                               // Update state locally
                                                syntheticEvent.setSequenceInd(SequenceInd.UPDATE);
                                                fstateUpdateProcessor.process(syntheticEvent, fTraceModel);
 
-                                               // AFTER UPDATE: update to the after state-update handlers
+                                               // After Update
                                                syntheticEvent.setSequenceInd(SequenceInd.AFTER);
-                                               // queueResult(syntheticEvent);
-                                               // queueResult(syntheticAckIndicator);
-                                               fmainRequest.setData(fresult);
-                                               fmainRequest.handleData();
-                                               // result[0] = syntheticAckIndicator;
-                                               // fmainRequest.setData(result);
-                                               // fmainRequest.handleData();
+                                               fmainRequest.handleData(syntheticEvent);
+                                               fmainRequest.handleData(syntheticAckIndicator);
 
                                                // increment once per dispatch
                                                incrementSynEvenCount();
@@ -264,16 +248,18 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
                                }
 
                                /**
-                                * Create a synthetic event from the received new reference, if the reference is the same there is no
-                                * need for a new instance
+                                * Create a synthetic event from the received new reference, if
+                                * the reference is the same there is no need for a new instance
                                 * 
-                                * if this is the first event for this request, call start handler
+                                * if this is the first event for this request, call start
+                                * handler
                                 * 
                                 * @param e
                                 * @return
                                 */
                                private LttngSyntheticEvent updateSynEvent(LttngEvent e) {
-                                       if (syntheticEvent == null || syntheticEvent.getBaseEvent() != e) {
+                                       if (syntheticEvent == null
+                                                       || syntheticEvent.getBaseEvent() != e) {
                                                syntheticEvent = new LttngSyntheticEvent(e);
                                                syntheticAckIndicator = new LttngSyntheticEvent(e);
                                                syntheticAckIndicator.setSequenceInd(SequenceInd.ACK);
@@ -292,7 +278,7 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
                                        return syntheticEvent;
                                }
                        };
-
+                                               
                        // preserve the associated sub request to control it e.g.
                        // cancellation
                        fEventProviderRequests.put(traceManager, subRequest);
@@ -319,30 +305,18 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
                startIndEvent.setSequenceInd(SequenceInd.STARTREQ);
 
                // Notify application
-               LttngSyntheticEvent[] result = new LttngSyntheticEvent[1];
-               result[0] = startIndEvent;
-               fmainRequest.setData(result);
-               fmainRequest.handleData();
-               // result[0] = fStatusEventAck;
-               // fmainRequest.setData(result);
-               // fmainRequest.handleData();
-
-               // try {
-               // queueResult(startIndEvent);
-               // queueResult(fStatusEventAck);
-               // } catch (InterruptedException e) {
-               // // TODO: cancel this request
-               // e.printStackTrace();
-               // }
+               fmainRequest.handleData(startIndEvent);
+               fmainRequest.handleData(fStatusEventAck);
 
                // Notify state event processor
                fstateUpdateProcessor.process(startIndEvent, null);
        }
 
        /**
-        * Notify listeners, no more events for the current request will be distributed e.g. update view.
+        * Notify listeners, no more events for the current request will be
+        * distributed e.g. update view.
         */
-       public synchronized void handleProviderDone() {
+       public synchronized void handleProviderDone(LttngTraceState traceModel) {
                // TODO: The use of a thread per main request and thread per sub-request
                // requires
                // to make sure the proper main request is marked completed. So a
@@ -359,44 +333,16 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
                        }
                }
 
-               // Notify application. One notification per trace so the last state of each trace can be
-               // drawn
-               LttngTraceState traceModel;
-               for (IStateTraceManager traceMgr : fEventProviderRequests.keySet()) {
-                       traceModel = traceMgr.getStateModel();
-
-                       LttngSyntheticEvent finishEvent = new LttngSyntheticEvent(fStatusEvent);
-                       // finishEvent.setTraceModel(traceModel);
-                       // finishEvent.setParentTrace((TmfTrace<LttngEvent>) traceModel.getContext().getTraceIdRef());
-                       finishEvent.setSequenceInd(SequenceInd.ENDREQ);
-                       finishEvent.setTraceModel(traceModel);
-
-                       LttngSyntheticEvent[] result = new LttngSyntheticEvent[1];
-                       // End Request indication
-                       result[0] = finishEvent;
-                       fmainRequest.setData(result);
-                       fmainRequest.handleData();
-
-                       // // End Request processed indication
-                       // result[0] = fStatusEventAck;
-                       // fmainRequest.setData(result);
-                       // fmainRequest.handleData();
-               }
+               // All sub-requests are marked completed so the main request can be
+               // completed as well
+               // Notify application,
+               LttngSyntheticEvent finishEvent = new LttngSyntheticEvent(fStatusEvent);
+               finishEvent.setSequenceInd(SequenceInd.ENDREQ);
+               finishEvent.setTraceModel(traceModel);
 
-               // All sub-requests are marked completed so the main request can be completed as well
+               fmainRequest.handleData(finishEvent);
+               fmainRequest.handleData(fStatusEventAck);
                fmainRequest.done();
-
-               // try {
-               // queueResult(finishEvent);
-               // queueResult(fStatusEventAck);
-               // // End the loop in the main request
-               // queueResult(LttngSyntheticEvent.NullEvent);
-               // } catch (InterruptedException e) {
-               // // System.out.println(getName() +
-               // // ":handleProviderDone() failed to queue request");
-               // // TODO: Cancel the request
-               // // e.printStackTrace();
-               // }
        }
 
        /**
@@ -453,18 +399,21 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
         * @param experiment
         */
        private synchronized void updateExperimentNode(LTTngTreeNode experiment) {
-               if (experiment != null && experiment.getValue() instanceof TmfExperiment<?>) {
+               if (experiment != null
+                               && experiment.getValue() instanceof TmfExperiment<?>) {
                        fExperiment = experiment;
                } else {
                        TraceDebug
-                                       .debug("Experiment received is not instance of TmfExperiment: " + experiment.getClass().getName());
+                                       .debug("Experiment received is not instance of TmfExperiment: "
+                                                       + experiment.getClass().getName());
                }
        }
 
        /*
         * (non-Javadoc)
         * 
-        * @see org.eclipse.linuxtools.tmf.component.TmfDataProvider#sendRequest(org.
+        * @see
+        * org.eclipse.linuxtools.tmf.component.TmfDataProvider#sendRequest(org.
         * eclipse.linuxtools.tmf.request.TmfDataRequest)
         */
        @Override
@@ -504,14 +453,4 @@ public class LttngSyntheticEventProvider extends TmfEventProvider<LttngSynthetic
                return null;
        }
 
-       // @Override
-       // public LttngSyntheticEvent getNext(ITmfContext context) {
-       // return super.getNext(context);
-       // }
-
-       // @Override
-       // public void queueResult(LttngSyntheticEvent data) {
-       // super.queueResult(data);
-       // }
-
 }
index ea4a01025b9ec40d848f600c1c22746d31358cb8..037ba1eaaaf0e595f1d74367e3c6eaf707ca935a 100644 (file)
@@ -65,7 +65,7 @@ public class LttngEvent extends TmfEvent {
     
     
     /**
-     * Return the parent trace asoociated with this event
+     * Return the parent trace associated with this event
      * 
      * @return Parent trace
      */
@@ -179,4 +179,9 @@ public class LttngEvent extends TmfEvent {
        
        return result.toString();
     }
+    
+    @Override
+       public LttngEvent clone() {
+       return new LttngEvent(this);
+    }
 }
index b7eaec1c023dfae690279414ae2c0e8947b1fbea..e7757dac8c165982d9c627f76c6d171ca0c18d5e 100644 (file)
@@ -68,7 +68,6 @@ public class LttngSyntEventRequest extends TmfEventRequest<LttngSyntheticEvent>
                        TmfTimeRange experimentTimeRange, ITransEventProcessor processor, ExecutionType execType) {
                
                super(LttngSyntheticEvent.class, range, nbEvents, maxBlockSize, execType);
-               //super(0, nbEvents, maxBlockSize);
                fExperimentTimeRange = experimentTimeRange;
                addListener(listener);
 
@@ -170,7 +169,8 @@ public class LttngSyntEventRequest extends TmfEventRequest<LttngSyntheticEvent>
         * @see org.eclipse.linuxtools.lttng.request.ILttngEventRequest#handleData()
         */
        @Override
-       public void handleData() {
+       public void handleData(LttngSyntheticEvent event) {
+               super.handleData(event);
        }
 
 
index e490a47e057609d7b5bdbf487187b38a610f0d6d..e240ba891c0bdc0d4e55b6d92c2916281e3a744f 100644 (file)
@@ -203,22 +203,6 @@ public class StateExperimentManager extends LTTngTreeNode implements
 
                // trigger data request to build the state system check points
                fStateCheckPointRequest = buildCheckPoints(experiment);
-
-//             LTTngTreeNode experimentNode = getChildByName(experiment.getName());
-//             if (experimentNode != null) {
-//                     // get the trace manager nodes
-//                     LTTngTreeNode[] traceNodes = experimentNode.getChildren();
-//                     for (LTTngTreeNode traceStateManagerNode : traceNodes) {
-//                             // The trace node needs to perform its first data request
-//                             // for this experiment with the main goal of building its
-//                             // checkpoints
-//                             if (traceStateManagerNode instanceof ILttExperimentSelectedListener) {
-//                                     // no need to provide the trace to the trace manager
-//                                     ((ILttExperimentSelectedListener) traceStateManagerNode).experimentUpdated(
-//                                                     new TmfExperimentUpdatedSignal(source, experiment, null), fwaitForCompletion);
-//                             }
-//                     }
-//             }
        }
 
        /*
@@ -338,15 +322,10 @@ public class StateExperimentManager extends LTTngTreeNode implements
                         * org.eclipse.linuxtools.tmf.request.TmfDataRequest#handleData()
                         */
                        @Override
-                       public void handleData() {
-                               LttngEvent[] events = getData();
-                               if (events.length > 0) {
-                                       nbEvents++;
-               
-                                       LttngEvent event = (LttngEvent) events[0];
-                                       
+                       public void handleData(LttngEvent event) {
+                               super.handleData(event);
+                               if (event != null) {
 //                                     Tracer.trace("Chk: " + event.getTimestamp());
-                                       
                                        ITmfTrace trace = event.getParentTrace();
                                        IStateTraceManager traceManager = ftraceToManagerMap.get(getTraceKey(trace));
                                        if (traceManager != null) {
@@ -400,9 +379,6 @@ public class StateExperimentManager extends LTTngTreeNode implements
                         * @param header
                         */
                        private void printCompletedMessage() {
-//                             System.out.println(System.currentTimeMillis() + ": StateExperimentManager completed checkpoints");
-
-                               // super.handleCompleted();
                                if (TraceDebug.isDEBUG()) {
                                        TraceDebug.debug("Trace check point building completed, number of events handled: " + nbEvents
                                                        + "\n\t\t");
index 094aeb9a12c748043009f7b5c62261df1e69f6be..b26a519add9664537a2ac957ee2aa9bba2195e30 100644 (file)
@@ -351,12 +351,10 @@ public class StateTraceManager extends LTTngTreeNode implements IStateTraceManag
                 * ()
                 */
                @Override
-               public void handleData() {
-                       LttngSyntheticEvent[] result = getData();
-
-                       evt[0] = (result.length > 0) ? result[0] : null;
-                       if (evt[0] != null) {
-                               synEvent = (LttngSyntheticEvent) evt[0];
+               public void handleData(LttngSyntheticEvent event) {
+                       super.handleData(event);
+                       if (event != null) {
+                               synEvent = event;
                                if (synEvent.getSynType() == SequenceInd.AFTER) {
                                        // Note : We call this function before incrementing
                                        // eventCount to save a default check point at the "0th"
index d91baac99ef0f80f59db0405cfdb7f857d9b1d56..e2ec6e456fe22911dd698e7de36c2232d897bbd6 100644 (file)
@@ -58,11 +58,11 @@ public class LTTngTrace extends TmfTrace<LttngEvent> {
 //     // [lmcfrch]
 //     private long lastTime = 0;
 
-       public static boolean printDebug = false;
+       public static boolean printDebug  = false;
        public static boolean uniqueEvent = false;
        
     private final static boolean SHOW_LTT_DEBUG_DEFAULT    = false;
-       private final static boolean IS_PARSING_NEEDED_DEFAULT = true;
+       private final static boolean IS_PARSING_NEEDED_DEFAULT = !uniqueEvent;
        private final static int     CHECKPOINT_PAGE_SIZE      = 1000;
     
     // Reference to our JNI trace
index 8e354a648e265797a0f36e000751fe28ff935720..abbfcd2c2f40395d359f7b14d3fc3057de2e8e3d 100644 (file)
@@ -96,14 +96,12 @@ public class TmfEventProviderTest extends TestCase {
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request =
                new TmfEventRequest<TmfEvent>(TmfEvent.class, range, NB_EVENTS, BLOCK_SIZE) {
-               @Override
-               public void handleData() {
-                       TmfEvent[] events = getData();
-                       for (TmfEvent e : events) {
-                               requestedEvents.add(e);
-                       }
-               }
-               };
+               @Override
+               public void handleData(TmfEvent event) {
+               super.handleData(event);
+                       requestedEvents.add(event);
+               }
+        };
         provider.sendRequest(request);
         try {
                        request.waitForCompletion();
@@ -132,13 +130,11 @@ public class TmfEventProviderTest extends TestCase {
 
         final TmfEventRequest<TmfSyntheticEventStub> request =
                new TmfEventRequest<TmfSyntheticEventStub>(TmfSyntheticEventStub.class, range, nbEvents, blockSize) {
-               @Override
-               public void handleData() {
-                       TmfSyntheticEventStub[] events = getData();
-                       for (TmfSyntheticEventStub e : events) {
-                               requestedEvents.add(e);
-                       }
-               }
+                       @Override
+                       public void handleData(TmfSyntheticEventStub event) {
+                       super.handleData(event);
+                               requestedEvents.add(event);
+                       }
                };
         provider.sendRequest(request);
 
@@ -203,7 +199,6 @@ public class TmfEventProviderTest extends TestCase {
         TmfTimeRange range = new TmfTimeRange(start, end);
                try {
                        getSyntheticData(range, -1, TmfSyntheticEventProviderStub.BLOCK_SIZE);
-//                     System.out.println("aie");
                } catch (InterruptedException e) {
                        fail();
                }
index dcb6f904348c64467251049168e64f386989cd36..589eac0a6cb282456a9d6e31b005c010076338d6 100644 (file)
@@ -563,11 +563,9 @@ public class TmfExperimentTest extends TestCase {
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
             @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
+            public void handleData(TmfEvent event) {
+               super.handleData(event);
+                requestedEvents.add(event);
             }
         };
         fExperiment.sendRequest(request);
@@ -592,13 +590,11 @@ public class TmfExperimentTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-            }
+               @Override
+               public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                       requestedEvents.add(event);
+               }
         };
         fExperiment.sendRequest(request);
         request.waitForCompletion();
@@ -623,13 +619,11 @@ public class TmfExperimentTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-            }
+               @Override
+               public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                       requestedEvents.add(event);
+               }
         };
         fExperiment.sendRequest(request);
         request.waitForCompletion();
@@ -657,15 +651,14 @@ public class TmfExperimentTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-                // Cancel request after the first chunk is received
-                cancel();
-            }
+               int nbRead = 0;
+               @Override
+               public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                       requestedEvents.add(event);
+                       if (++nbRead == blockSize)
+                               cancel();
+               }
             @Override
             public void handleCancel() {
                if (requestedEvents.size() < blockSize) {
index 739ad21bd960bddfea93486393b429c60e4d3cf5..a573bf19cc00858799367b4e67ce2d5690661484 100644 (file)
@@ -566,13 +566,11 @@ public class TmfMultiTraceExperimentTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-            }
+               @Override
+               public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                       requestedEvents.add(event);
+               }
         };
         fExperiment.sendRequest(request);
         request.waitForCompletion();
@@ -596,13 +594,11 @@ public class TmfMultiTraceExperimentTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-            }
+               @Override
+               public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                       requestedEvents.add(event);
+               }
         };
         fExperiment.sendRequest(request);
         request.waitForCompletion();
@@ -627,13 +623,11 @@ public class TmfMultiTraceExperimentTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-            }
+               @Override
+               public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                       requestedEvents.add(event);
+               }
         };
         fExperiment.sendRequest(request);
         request.waitForCompletion();
@@ -661,15 +655,14 @@ public class TmfMultiTraceExperimentTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-                // Cancel request after the first chunk is received
-                cancel();
-            }
+               int nbRead = 0;
+               @Override
+               public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                       requestedEvents.add(event);
+                       if (++nbRead == blockSize)
+                               cancel();
+               }
             @Override
             public void handleCancel() {
                if (requestedEvents.size() < blockSize) {
index 3187347c128b52e659a19973ae75c50d07b20052..a0ddf94611df3afef2a31109773314b700011ebf 100644 (file)
@@ -16,10 +16,6 @@ package org.eclipse.linuxtools.tmf.tests.request;
 import junit.framework.TestCase;
 
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.event.TmfEventReference;
-import org.eclipse.linuxtools.tmf.event.TmfEventSource;
-import org.eclipse.linuxtools.tmf.event.TmfEventType;
-import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.request.TmfCoalescedDataRequest;
 import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
 import org.eclipse.linuxtools.tmf.request.TmfDataRequestStub;
@@ -112,7 +108,6 @@ public class TmfCoalescedDataRequestTest extends TestCase {
 
         assertEquals("getIndex", 0, request.getIndex());
         assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
-        assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -129,7 +124,6 @@ public class TmfCoalescedDataRequestTest extends TestCase {
 
         assertEquals("getIndex", 10, request.getIndex());
         assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
-        assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -146,7 +140,6 @@ public class TmfCoalescedDataRequestTest extends TestCase {
 
         assertEquals("getIndex", 10, request.getIndex());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
-        assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -163,7 +156,6 @@ public class TmfCoalescedDataRequestTest extends TestCase {
 
         assertEquals("getIndex", 10, request.getIndex());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
-        assertEquals("getBlockize", 200, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -220,10 +212,10 @@ public class TmfCoalescedDataRequestTest extends TestCase {
        // ------------------------------------------------------------------------
 
        public void testToString() {
-        String expected1 = "[TmfCoalescedDataRequest(0,TmfEvent,10,100,200)]";
-        String expected2 = "[TmfCoalescedDataRequest(1,TmfEvent,20,100,200)]";
-        String expected3 = "[TmfCoalescedDataRequest(2,TmfEvent,20,200,200)]";
-        String expected4 = "[TmfCoalescedDataRequest(3,TmfEvent,20,200,300)]";
+        String expected1 = "[TmfCoalescedDataRequest(0,TmfEvent,10,100)]";
+        String expected2 = "[TmfCoalescedDataRequest(1,TmfEvent,20,100)]";
+        String expected3 = "[TmfCoalescedDataRequest(2,TmfEvent,20,200)]";
+        String expected4 = "[TmfCoalescedDataRequest(3,TmfEvent,20,200)]";
 
         assertEquals("toString", expected1, fRequest1.toString());
         assertEquals("toString", expected2, fRequest2.toString());
@@ -240,60 +232,10 @@ public class TmfCoalescedDataRequestTest extends TestCase {
                TmfDataRequest<TmfEvent> request1 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
                TmfDataRequest<TmfEvent> request2 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 11, 100, 200);
                TmfDataRequest<TmfEvent> request3 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 101, 200);
-               TmfDataRequest<TmfEvent> request4 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 201);
 
         assertTrue ("isCompatible", coalescedRequest.isCompatible(request1));
         assertFalse("isCompatible", coalescedRequest.isCompatible(request2));
         assertFalse("isCompatible", coalescedRequest.isCompatible(request3));
-        assertFalse("isCompatible", coalescedRequest.isCompatible(request4));
-       }
-
-       // ------------------------------------------------------------------------
-       // setData/getData
-       // ------------------------------------------------------------------------
-
-       public void testSetData() {
-
-               TmfCoalescedDataRequest<TmfEvent> coalescedRequest = new TmfCoalescedDataRequest<TmfEvent>(TmfEvent.class, 10, 100, 200);
-               TmfDataRequest<TmfEvent> request1 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
-               TmfDataRequest<TmfEvent> request2 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
-               coalescedRequest.addRequest(request1);
-               coalescedRequest.addRequest(request2);
-
-               // Initialize the data
-               int nbEvents = 10;
-               TmfEvent[] events = new TmfEvent[nbEvents];
-               for (int i = 0; i < nbEvents; i++) {
-                       events[i] = new TmfEvent(new TmfTimestamp(i), new TmfEventSource(),
-                                       new TmfEventType(), new TmfEventReference());
-               }
-
-               coalescedRequest.setData(events);
-               coalescedRequest.handleData();
-
-               // Validate the coalescing request
-               assertEquals("setData", nbEvents, coalescedRequest.getNbRead());
-               TmfEvent[] eventsRead1 = coalescedRequest.getData();
-               assertEquals("getData", nbEvents, eventsRead1.length);
-               for (int i = 0; i < nbEvents; i++) {
-                       assertEquals("getData", i, eventsRead1[i].getTimestamp().getValue());
-               }
-
-               // Validate the first coalesced request
-               assertEquals("setData", nbEvents, request1.getNbRead());
-               TmfEvent[] eventsRead2 = request1.getData();
-               assertEquals("getData", nbEvents, eventsRead2.length);
-               for (int i = 0; i < nbEvents; i++) {
-                       assertEquals("getData", i, eventsRead2[i].getTimestamp().getValue());
-               }
-
-               // Validate the second coalesced request
-               assertEquals("setData", nbEvents, request2.getNbRead());
-               TmfEvent[] eventsRead3 = request2.getData();
-               assertEquals("getData", nbEvents, eventsRead3.length);
-               for (int i = 0; i < nbEvents; i++) {
-                       assertEquals("getData", i, eventsRead3[i].getTimestamp().getValue());
-               }
        }
 
        // ------------------------------------------------------------------------
index 95ff324f8b05d8bbb47736a3adc9967a55447910..b044ccb82378ebae26f11300cd676160528c51df 100644 (file)
@@ -25,15 +25,10 @@ import org.eclipse.core.runtime.Path;
 import org.eclipse.linuxtools.tmf.component.ITmfDataProvider;
 import org.eclipse.linuxtools.tmf.component.TmfProviderManager;
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.event.TmfEventReference;
-import org.eclipse.linuxtools.tmf.event.TmfEventSource;
-import org.eclipse.linuxtools.tmf.event.TmfEventType;
 import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.request.TmfCoalescedDataRequest;
 import org.eclipse.linuxtools.tmf.request.TmfCoalescedEventRequest;
-import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
-import org.eclipse.linuxtools.tmf.request.TmfDataRequestStub;
 import org.eclipse.linuxtools.tmf.request.TmfEventRequest;
 import org.eclipse.linuxtools.tmf.request.TmfEventRequestStub;
 import org.eclipse.linuxtools.tmf.signal.TmfSignal;
@@ -133,7 +128,6 @@ public class TmfCoalescedEventRequestTest extends TestCase {
 
         assertEquals("getRange", range1, request.getRange());
         assertEquals("getNbRequestedEvents", TmfEventRequest.ALL_DATA, request.getNbRequested());
-        assertEquals("getBlockize", TmfEventRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -150,7 +144,6 @@ public class TmfCoalescedEventRequestTest extends TestCase {
 
         assertEquals("getRange", range1, request.getRange());
         assertEquals("getNbRequestedEvents", TmfEventRequest.ALL_DATA, request.getNbRequested());
-        assertEquals("getBlockize", TmfEventRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -167,7 +160,6 @@ public class TmfCoalescedEventRequestTest extends TestCase {
 
         assertEquals("getRange", range1, request.getRange());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
-        assertEquals("getBlockize", TmfEventRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -184,7 +176,6 @@ public class TmfCoalescedEventRequestTest extends TestCase {
 
         assertEquals("getRange", range1, request.getRange());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
-        assertEquals("getBlockize", 200, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -228,11 +219,11 @@ public class TmfCoalescedEventRequestTest extends TestCase {
 
        public void testEqualsSuper() throws Exception {
                TmfCoalescedDataRequest<TmfEvent> dataRequest1 = new TmfCoalescedDataRequest<TmfEvent>(
-                       fRequest1.getDataType(), fRequest1.getIndex(), fRequest1.getNbRequested(), fRequest1.getBlockize());
+                               fRequest1.getDataType(), fRequest1.getIndex(), fRequest1.getNbRequested());
                TmfCoalescedDataRequest<TmfEvent> dataRequest2 = new TmfCoalescedDataRequest<TmfEvent>(
-                       fRequest1.getDataType(), fRequest1.getIndex(), fRequest1.getNbRequested(), fRequest1.getBlockize());
+                               fRequest1.getDataType(), fRequest1.getIndex(), fRequest1.getNbRequested());
                TmfCoalescedDataRequest<TmfEvent> dataRequest3 = new TmfCoalescedDataRequest<TmfEvent>(
-                       fRequest3.getDataType(), fRequest3.getIndex(), fRequest3.getNbRequested(), fRequest3.getBlockize());
+                               fRequest3.getDataType(), fRequest3.getIndex(), fRequest3.getNbRequested());
 
                assertTrue("equals", fRequest1.equals(dataRequest2));
         assertTrue("equals", fRequest2.equals(dataRequest1));
@@ -255,10 +246,10 @@ public class TmfCoalescedEventRequestTest extends TestCase {
        // ------------------------------------------------------------------------
 
        public void testToString() {
-        String expected1 = "[TmfCoalescedEventRequest(0,TmfEvent," + range1 + ",100,200)]";
-        String expected2 = "[TmfCoalescedEventRequest(1,TmfEvent," + range2 + ",100,200)]";
-        String expected3 = "[TmfCoalescedEventRequest(2,TmfEvent," + range2 + ",200,200)]";
-        String expected4 = "[TmfCoalescedEventRequest(3,TmfEvent," + range2 + ",200,300)]";
+        String expected1 = "[TmfCoalescedEventRequest(0,TmfEvent," + range1 + ",100)]";
+        String expected2 = "[TmfCoalescedEventRequest(1,TmfEvent," + range2 + ",100)]";
+        String expected3 = "[TmfCoalescedEventRequest(2,TmfEvent," + range2 + ",200)]";
+        String expected4 = "[TmfCoalescedEventRequest(3,TmfEvent," + range2 + ",200)]";
 
         assertEquals("toString", expected1, fRequest1.toString());
         assertEquals("toString", expected2, fRequest2.toString());
@@ -275,62 +266,10 @@ public class TmfCoalescedEventRequestTest extends TestCase {
                TmfEventRequest<TmfEvent> request1 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
                TmfEventRequest<TmfEvent> request2 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range2, 100, 200);
                TmfEventRequest<TmfEvent> request3 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 101, 200);
-               TmfEventRequest<TmfEvent> request4 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 201);
-               TmfDataRequest<TmfEvent>  request5 = new TmfDataRequestStub<TmfEvent> (TmfEvent.class,     10, 100, 201);
 
         assertTrue ("isCompatible", coalescedRequest.isCompatible(request1));
         assertTrue ("isCompatible", coalescedRequest.isCompatible(request2));
         assertFalse("isCompatible", coalescedRequest.isCompatible(request3));
-        assertFalse("isCompatible", coalescedRequest.isCompatible(request4));
-        assertFalse("isCompatible", coalescedRequest.isCompatible(request5));
-       }
-
-       // ------------------------------------------------------------------------
-       // setData/getData
-       // ------------------------------------------------------------------------
-
-       public void testSetData() {
-
-               TmfCoalescedEventRequest<TmfEvent> coalescedRequest = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range1, 100, 200);
-               TmfEventRequest<TmfEvent> request1 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
-               TmfEventRequest<TmfEvent> request2 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
-               coalescedRequest.addRequest(request1);
-               coalescedRequest.addRequest(request2);
-
-               // Initialize the data
-               int nbEvents = 10;
-               TmfEvent[] events = new TmfEvent[nbEvents];
-               for (int i = 0; i < nbEvents; i++) {
-                       events[i] = new TmfEvent(new TmfTimestamp(i), new TmfEventSource(),
-                                       new TmfEventType(), new TmfEventReference());
-               }
-
-               coalescedRequest.setData(events);
-               coalescedRequest.handleData();
-
-               // Validate the coalescing request
-               assertEquals("setData", nbEvents, coalescedRequest.getNbRead());
-               TmfEvent[] eventsRead1 = coalescedRequest.getData();
-               assertEquals("getData", nbEvents, eventsRead1.length);
-               for (int i = 0; i < nbEvents; i++) {
-                       assertEquals("getData", i, eventsRead1[i].getTimestamp().getValue());
-               }
-
-               // Validate the first coalesced request
-               assertEquals("setData", nbEvents, request1.getNbRead());
-               TmfEvent[] eventsRead2 = request1.getData();
-               assertEquals("getData", nbEvents, eventsRead2.length);
-               for (int i = 0; i < nbEvents; i++) {
-                       assertEquals("getData", i, eventsRead2[i].getTimestamp().getValue());
-               }
-
-               // Validate the second coalesced request
-               assertEquals("setData", nbEvents, request2.getNbRead());
-               TmfEvent[] eventsRead3 = request2.getData();
-               assertEquals("getData", nbEvents, eventsRead3.length);
-               for (int i = 0; i < nbEvents; i++) {
-                       assertEquals("getData", i, eventsRead3[i].getTimestamp().getValue());
-               }
        }
 
        // ------------------------------------------------------------------------
@@ -499,14 +438,13 @@ public class TmfCoalescedEventRequestTest extends TestCase {
 
         requestedEvents1 = new Vector<TmfEvent>();
         request1 = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, NB_EVENTS, BLOCK_SIZE) {
+               int nbRead = 0;
             @Override
-            public void handleData() {
+            public void handleData(TmfEvent event) {
+                       super.handleData(event);
                if (!isCompleted()) {
-                       TmfEvent[] events = getData();
-                       for (TmfEvent e : events) {
-                               requestedEvents1.add(e);
-                       }
-                       if (signal.forceCancel)
+                               requestedEvents1.add(event);
+                       if (++nbRead >= BLOCK_SIZE && signal.forceCancel)
                                cancel();
                }
             }
@@ -515,12 +453,10 @@ public class TmfCoalescedEventRequestTest extends TestCase {
         requestedEvents2 = new Vector<TmfEvent>();
         request2 = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, NB_EVENTS, BLOCK_SIZE) {
             @Override
-            public void handleData() {
+            public void handleData(TmfEvent event) {
+                       super.handleData(event);
                if (!isCompleted()) {
-                       TmfEvent[] events = getData();
-                       for (TmfEvent e : events) {
-                               requestedEvents2.add(e);
-                       }
+                       requestedEvents2.add(event);
                }
             }
         };
@@ -528,12 +464,10 @@ public class TmfCoalescedEventRequestTest extends TestCase {
         requestedEvents3 = new Vector<TmfEvent>();
         request3 = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, NB_EVENTS, BLOCK_SIZE) {
             @Override
-            public void handleData() {
+            public void handleData(TmfEvent event) {
+                       super.handleData(event);
                if (!isCompleted()) {
-                       TmfEvent[] events = getData();
-                       for (TmfEvent e : events) {
-                               requestedEvents3.add(e);
-                       }
+                       requestedEvents3.add(event);
                }
             }
         };
index 33c332598d60ae457f7acf1d6a272f567bc00e60..eb662dc83b62a634b6913a5b92097bb5cfcb3f0f 100644 (file)
@@ -15,10 +15,6 @@ package org.eclipse.linuxtools.tmf.tests.request;
 import junit.framework.TestCase;
 
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.event.TmfEventReference;
-import org.eclipse.linuxtools.tmf.event.TmfEventSource;
-import org.eclipse.linuxtools.tmf.event.TmfEventType;
-import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
 import org.eclipse.linuxtools.tmf.request.TmfDataRequestStub;
 
@@ -107,7 +103,6 @@ public class TmfDataRequestTest extends TestCase {
 
         assertEquals("getIndex", 0, request.getIndex());
         assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
-        assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -124,7 +119,6 @@ public class TmfDataRequestTest extends TestCase {
 
         assertEquals("getIndex", 10, request.getIndex());
         assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
-        assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -141,7 +135,6 @@ public class TmfDataRequestTest extends TestCase {
 
         assertEquals("getIndex", 10, request.getIndex());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
-        assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -158,7 +151,6 @@ public class TmfDataRequestTest extends TestCase {
 
         assertEquals("getIndex", 10, request.getIndex());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
-        assertEquals("getBlockize", 200, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -215,10 +207,10 @@ public class TmfDataRequestTest extends TestCase {
        // ------------------------------------------------------------------------
 
        public void testToString() {
-        String expected1 = "[TmfDataRequest(0,TmfEvent,10,100,200)]";
-        String expected2 = "[TmfDataRequest(1,TmfEvent,20,100,200)]";
-        String expected3 = "[TmfDataRequest(2,TmfEvent,20,200,200)]";
-        String expected4 = "[TmfDataRequest(3,TmfEvent,20,200,300)]";
+        String expected1 = "[TmfDataRequest(0,TmfEvent,10,100)]";
+        String expected2 = "[TmfDataRequest(1,TmfEvent,20,100)]";
+        String expected3 = "[TmfDataRequest(2,TmfEvent,20,200)]";
+        String expected4 = "[TmfDataRequest(3,TmfEvent,20,200)]";
 
         assertEquals("toString", expected1, fRequest1.toString());
         assertEquals("toString", expected2, fRequest2.toString());
@@ -226,30 +218,6 @@ public class TmfDataRequestTest extends TestCase {
         assertEquals("toString", expected4, fRequest4.toString());
        }
 
-       // ------------------------------------------------------------------------
-       // setData/getData
-       // ------------------------------------------------------------------------
-
-       public void testSetData() {
-               // Initialize the data
-               int nbEvents = 10;
-               TmfEvent[] events = new TmfEvent[nbEvents];
-               for (int i = 0; i < nbEvents; i++) {
-                       events[i] = new TmfEvent(new TmfTimestamp(i), new TmfEventSource(),
-                                       new TmfEventType(), new TmfEventReference());
-               }
-
-               fRequest1.setData(events);
-               assertEquals("setData", nbEvents, fRequest1.getNbRead());
-
-               TmfEvent[] eventsRead = fRequest1.getData();
-               assertEquals("getData", nbEvents, eventsRead.length);
-
-               for (int i = 0; i < nbEvents; i++) {
-                       assertEquals("getData", i, eventsRead[i].getTimestamp().getValue());
-               }
-       }
-
        // ------------------------------------------------------------------------
        // done
        // ------------------------------------------------------------------------
index 189bd32ad5189337272276e74d0f56db3bf082f9..0761a6fbf14b39667c5a15bd32cc741b62d9dc0f 100644 (file)
@@ -15,9 +15,6 @@ package org.eclipse.linuxtools.tmf.tests.request;
 import junit.framework.TestCase;
 
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.event.TmfEventReference;
-import org.eclipse.linuxtools.tmf.event.TmfEventSource;
-import org.eclipse.linuxtools.tmf.event.TmfEventType;
 import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
@@ -115,7 +112,6 @@ public class TmfEventRequestTest extends TestCase {
 
         assertEquals("getIndex", 0, request.getIndex());
         assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
-        assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -136,7 +132,6 @@ public class TmfEventRequestTest extends TestCase {
 
         assertEquals("getIndex", 0, request.getIndex());
         assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
-        assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -157,7 +152,6 @@ public class TmfEventRequestTest extends TestCase {
 
         assertEquals("getIndex", 0, request.getIndex());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
-        assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -178,7 +172,6 @@ public class TmfEventRequestTest extends TestCase {
 
         assertEquals("getIndex", 0, request.getIndex());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
-        assertEquals("getBlockize", 200, request.getBlockize());
 
         assertFalse("isCompleted", request.isCompleted());
         assertFalse("isFailed", request.isFailed());
@@ -235,10 +228,10 @@ public class TmfEventRequestTest extends TestCase {
        // ------------------------------------------------------------------------
 
        public void testToString() {
-        String expected1 = "[TmfEventRequest(0,TmfEvent," + range1 + ",100,200)]";
-        String expected2 = "[TmfEventRequest(1,TmfEvent," + range2 + ",100,200)]";
-        String expected3 = "[TmfEventRequest(2,TmfEvent," + range2 + ",200,200)]";
-        String expected4 = "[TmfEventRequest(3,TmfEvent," + range2 + ",200,300)]";
+        String expected1 = "[TmfEventRequest(0,TmfEvent," + range1 + ",100)]";
+        String expected2 = "[TmfEventRequest(1,TmfEvent," + range2 + ",100)]";
+        String expected3 = "[TmfEventRequest(2,TmfEvent," + range2 + ",200)]";
+        String expected4 = "[TmfEventRequest(3,TmfEvent," + range2 + ",200)]";
 
         assertEquals("toString", expected1, fRequest1.toString());
         assertEquals("toString", expected2, fRequest2.toString());
@@ -246,30 +239,6 @@ public class TmfEventRequestTest extends TestCase {
         assertEquals("toString", expected4, fRequest4.toString());
        }
 
-       // ------------------------------------------------------------------------
-       // setData/getData
-       // ------------------------------------------------------------------------
-
-       public void testSetData() {
-               // Initialize the data
-               int nbEvents = 10;
-               TmfEvent[] events = new TmfEvent[nbEvents];
-               for (int i = 0; i < nbEvents; i++) {
-                       events[i] = new TmfEvent(new TmfTimestamp(i), new TmfEventSource(),
-                                       new TmfEventType(), new TmfEventReference());
-               }
-
-               fRequest1.setData(events);
-               assertEquals("setData", nbEvents, fRequest1.getNbRead());
-
-               TmfEvent[] eventsRead = fRequest1.getData();
-               assertEquals("getData", nbEvents, eventsRead.length);
-
-               for (int i = 0; i < nbEvents; i++) {
-                       assertEquals("getData", i, eventsRead[i].getTimestamp().getValue());
-               }
-       }
-
        // ------------------------------------------------------------------------
        // done
        // ------------------------------------------------------------------------
index 8359a4d03ab1b986f230a39d05ca5e8fbdbda46e..b6ae97ae2d821f9a6ee5badfcb63e5b7a62d0db4 100644 (file)
@@ -517,13 +517,11 @@ public class TmfExperimentTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-            }
+               @Override
+               public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                       requestedEvents.add(event);
+               }
         };
         fExperiment.sendRequest(request);
         request.waitForCompletion();
@@ -546,13 +544,11 @@ public class TmfExperimentTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-            }
+               @Override
+               public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                       requestedEvents.add(event);
+               }
         };
         fExperiment.sendRequest(request);
         request.waitForCompletion();
@@ -576,13 +572,11 @@ public class TmfExperimentTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-            }
+               @Override
+               public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                       requestedEvents.add(event);
+               }
         };
         fExperiment.sendRequest(request);
         request.waitForCompletion();
@@ -609,15 +603,14 @@ public class TmfExperimentTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, nbEvents, blockSize) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-                // Cancel request after the first chunk is received
-                cancel();
-            }
+       int nbRead = 0;
+       @Override
+       public void handleData(TmfEvent event) {
+               super.handleData(event);
+               requestedEvents.add(event);
+               if (++nbRead == blockSize)
+                       cancel();
+       }
         };
         fExperiment.sendRequest(request);
         request.waitForCompletion();
index 8f3ce4903cc580a814554233c33e9e001869b2a3..f3cb23e8ae236635177be2995a9df1400d8be762 100644 (file)
@@ -69,7 +69,8 @@ public class TmfTraceTest extends TestCase {
                // Dummy request to force the trace indexing
        TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class) {
                        @Override
-                       public void handleData() {
+                       public void handleData(TmfEvent event) {
+                       super.handleData(event);
                        }
        };
        fTrace.sendRequest(request);
@@ -705,13 +706,11 @@ public class TmfTraceTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, NB_EVENTS, BLOCK_SIZE) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-            }
+               @Override
+               public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                       requestedEvents.add(event);
+               }
         };
         ITmfDataProvider<TmfEvent>[] providers = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TmfTraceStub.class);
         providers[0].sendRequest(request);
@@ -735,13 +734,11 @@ public class TmfTraceTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, NB_EVENTS, BLOCK_SIZE) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-            }
+               @Override
+               public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                       requestedEvents.add(event);
+               }
         };
         ITmfDataProvider<TmfEvent>[] providers = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TmfTraceStub.class);
         providers[0].sendRequest(request);
@@ -768,15 +765,14 @@ public class TmfTraceTest extends TestCase {
 
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
         final TmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, range, NB_EVENTS, BLOCK_SIZE) {
-            @Override
-            public void handleData() {
-               TmfEvent[] events = getData();
-                for (TmfEvent e : events) {
-                    requestedEvents.add(e);
-                }
-                // Cancel request after the first chunk is received
-                cancel();
-            }
+               int nbRead = 0;
+               @Override
+               public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                       requestedEvents.add(event);
+                       if (++nbRead == BLOCK_SIZE)
+                               cancel();
+               }
         };
         ITmfDataProvider<TmfEvent>[] providers = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TmfTraceStub.class);
         providers[0].sendRequest(request);
index 6de6d763635937fc990079d10f431c67214d952f..c5d6eb1a8a9d4c8a7feb1fa4b9774642b29d5d11 100644 (file)
@@ -55,17 +55,14 @@ public class TmfSyntheticEventProviderStub extends TmfEventProvider<TmfSynthetic
         TmfTimeRange range = eventRequest.getRange();
         final TmfEventRequest<TmfEvent> subRequest =
                new TmfEventRequest<TmfEvent>(TmfEvent.class, range, NB_EVENTS, BLOCK_SIZE) {
-               @Override
-               public void handleData() {
-                       TmfEvent[] events = getData();
-                       if (events.length > 0) {
-                               for (TmfEvent e : events) {
-                                       handleIncomingData(e);
-                               }
-                       } else {
-                               request.done();
-                       }
-               }
+                       @Override
+                       public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                               if (event != null)
+                                       handleIncomingData(event);
+                               else
+                                       request.done();
+                       }
                };
         provider.sendRequest(subRequest);
 
index f5630a4596b99ad77128892b7971b433a2db8b29..bdf585f760255745299db49bbd01be76ed4a4cd8 100644 (file)
@@ -53,8 +53,8 @@ public class TmfDataRequestStub<T extends TmfData> extends TmfDataRequest<T> {
     }
 
        @Override
-       public void handleData() {
-               // TODO Auto-generated method stub
+       public void handleData(T data) {
+               super.handleData(data);
        }
 
 }
index 4c7f74dae72df1e8a9368292ef1b156cf7555b55..73991de92e888d5576edcfda46583d6069e9ccea 100644 (file)
@@ -54,7 +54,7 @@ public class TmfEventRequestStub<T extends TmfEvent> extends TmfEventRequest<T>
     }
 
        @Override
-       public void handleData() {
-               // TODO Auto-generated method stub
+       public void handleData(T data) {
+               super.handleData(data);
        }
 }
index e6448957d97382f0b6dd0ae46a9a45f9f321480a..7be6eb6d156fc1f0e79517c4c63204ccafdff630 100644 (file)
@@ -144,17 +144,33 @@ public class TmfEventsTable extends TmfComponent {
                     return;\r
                 }\r
 \r
+                fCacheStartIndex = index;\r
+                fCacheEndIndex = index;\r
+\r
                 TmfDataRequest<TmfEvent> request = new TmfDataRequest<TmfEvent>(TmfEvent.class, index, fCacheSize) {\r
-                    @Override\r
-                    public void handleData() {\r
-                        TmfEvent[] tmpEvent = getData();\r
-                        if ((tmpEvent != null) && (tmpEvent.length > 0)) {\r
-                            fCache = tmpEvent;\r
-                            fCacheStartIndex = index;\r
-                            fCacheEndIndex = index + tmpEvent.length;\r
+//                    @Override\r
+//                    public void handleData() {\r
+//                        TmfEvent[] tmpEvent = getData();\r
+//                        if ((tmpEvent != null) && (tmpEvent.length > 0)) {\r
+//                            fCache = tmpEvent;\r
+//                            fCacheStartIndex = index;\r
+//                            fCacheEndIndex = index + tmpEvent.length;\r
+//                        }\r
+//                    }\r
+\r
+                       private int count = 0;\r
+\r
+                       @Override\r
+                    public void handleData(TmfEvent event) {\r
+                               super.handleData(event);\r
+                        if (event != null) {\r
+                            fCache[count++] = event.clone();\r
+                            fCacheEndIndex++;\r
                         }\r
                     }\r
+\r
                 };\r
+\r
                 ((ITmfDataProvider<TmfEvent>) fTrace).sendRequest(request);\r
                 try {\r
                     request.waitForCompletion();\r
index f332c8215aa6ac78c28c740c54a37f6bcedc8596..884a10d9b1274cfca9a7a3dccfd3275337a883c6 100644 (file)
@@ -1,3 +1,27 @@
+2010-09-17  Francois Chouinard  <fchouinard@gmail.com>
+
+       * src/org/eclipse/linuxtools/tmf/component/TmfDataProvider.java: Adjusted to new handleData() API 
+       * src/org/eclipse/linuxtools/tmf/component/TmfEventProvider.java: Adjusted to new handleData() API 
+       * src/org/eclipse/linuxtools/tmf/event/TmfEvent.java: Support for single event 
+       * src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java: Adjusted to new handleData() API  
+       * src/org/eclipse/linuxtools/tmf/request/ITmfDataRequest.java: Adjusted to new handleData() API  
+       * src/org/eclipse/linuxtools/tmf/request/TmfCoalescedDataRequest.java: Adjusted to new handleData() API  
+       * src/org/eclipse/linuxtools/tmf/request/TmfCoalescedEventRequest.java: Adjusted to new handleData() API  
+       * src/org/eclipse/linuxtools/tmf/request/TmfDataRequest.java: Adjusted to new handleData() API 
+       * src/org/eclipse/linuxtools/tmf/request/TmfEventRequest.java: Adjusted to new handleData() API 
+
+2010-09-17  Francois Chouinard  <fchouinard@gmail.com>
+
+       * src/org/eclipse/linuxtools/tmf/component/TmfDataProvider.java: Adjusted to new handleData() API 
+       * src/org/eclipse/linuxtools/tmf/component/TmfEventProvider.java: Adjusted to new handleData() API 
+       * src/org/eclipse/linuxtools/tmf/event/TmfEvent.java: Support for single event 
+       * src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java: Adjusted to new handleData() API  
+       * src/org/eclipse/linuxtools/tmf/request/ITmfDataRequest.java: Adjusted to new handleData() API  
+       * src/org/eclipse/linuxtools/tmf/request/TmfCoalescedDataRequest.java: Adjusted to new handleData() API  
+       * src/org/eclipse/linuxtools/tmf/request/TmfCoalescedEventRequest.java: Adjusted to new handleData() API  
+       * src/org/eclipse/linuxtools/tmf/request/TmfDataRequest.java: Adjusted to new handleData() API 
+       * src/org/eclipse/linuxtools/tmf/request/TmfEventRequest.java: Adjusted to new handleData() API 
+
 2010-09-15  Francois Chouinard  <fchouinard@gmail.com>
 
     * src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java: Optimized TmfExperimentContext handling 
index 2af6b9f4f3060a58e1a5f8f97283a7c6daf858cd..1e93feba1fcca027f13d9cf6fb283ecdfe81eea3 100644 (file)
@@ -12,7 +12,6 @@
 
 package org.eclipse.linuxtools.tmf.component;
 
-import java.lang.reflect.Array;
 import java.util.Vector;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
@@ -159,8 +158,8 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
 
        protected void newCoalescedDataRequest(ITmfDataRequest<T> request) {
                synchronized(fLock) {
-                       TmfCoalescedDataRequest<T> coalescedRequest =
-                               new TmfCoalescedDataRequest<T>(fType, request.getIndex(), request.getNbRequested(), request.getBlockize(), request.getExecType());
+                       TmfCoalescedDataRequest<T> coalescedRequest = new TmfCoalescedDataRequest<T>(
+                                       fType, request.getIndex(), request.getNbRequested(),request.getExecType());
                        coalescedRequest.addRequest(request);
                if (Tracer.isRequestTraced()) {
                        Tracer.traceRequest(request, "coalesced with " + coalescedRequest.getRequestId());
@@ -204,7 +203,7 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
                return;
            }
            
-//             final TmfDataProvider<T> provider = this;
+               final TmfDataProvider<T> provider = this;
 
                // Process the request
                TmfThread thread = new TmfThread(request.getExecType()) {
@@ -212,15 +211,11 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
                        @Override
                        public void run() {
 
-//                             if (Tracer.isRequestTraced()) Tracer.traceRequest(request, "started");
+                               if (Tracer.isRequestTraced()) Tracer.traceRequest(request, "started");
 
                                // Extract the generic information
                                request.start();
-                               int blockSize   = request.getBlockize();
                                int nbRequested = request.getNbRequested();
-                        
-                               // Create the result buffer
-                               Vector<T> result = new Vector<T>();
                                int nbRead = 0;
 
                                // Initialize the execution
@@ -232,27 +227,22 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
 
                                try {
                                        // Get the ordered events
-//                                     if (Tracer.isRequestTraced()) Tracer.trace("Request #" + request.getRequestId() + " is being serviced by " + provider.getName());
+                                       if (Tracer.isRequestTraced()) Tracer.trace("Request #" + request.getRequestId() + " is being serviced by " + provider.getName());
                                        T data = getNext(context);
-//                                     if (Tracer.isRequestTraced()) Tracer.trace("Request #" + request.getRequestId() + " read first event");
+                                       if (Tracer.isRequestTraced()) Tracer.trace("Request #" + request.getRequestId() + " read first event");
                                        while (data != null && !isCompleted(request, data, nbRead))
                                        {
-//                                             if (fLogData) Tracer.traceEvent(provider, request, data);
-                                               result.add(data);
-                                               if (++nbRead % blockSize == 0) {
-                                                       pushData(request, result);
-                                               }
+                                               if (fLogData) Tracer.traceEvent(provider, request, data);
+                                               request.handleData(data);
+
                                                // To avoid an unnecessary read passed the last data requested
-                                               if (nbRead < nbRequested) {
+                                               if (++nbRead < nbRequested) {
                                                        data = getNext(context);
                                                        if (Tracer.isRequestTraced() && (data == null || data.isNullRef())) {
                                                                Tracer.trace("Request #" + request.getRequestId() + " end of data");
                                                        }
                                                }
                                        }
-                                       if (result.size() > 0) {
-                                               pushData(request, result);
-                                       }
                                        request.done();
 
                                        if (Tracer.isRequestTraced()) Tracer.traceRequest(request, "completed");
@@ -260,7 +250,6 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
                                catch (Exception e) {
                                if (Tracer.isRequestTraced()) Tracer.traceRequest(request, "exception (failed)");
                                        request.fail();
-//                                     e.printStackTrace();
                                }
                        }
                };
@@ -275,26 +264,6 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
                queueRequest(request);
        }
 
-       /**
-        * Format the result data and forwards it to the requester.
-        * Note: after handling, the data is *removed*.
-        * 
-        * @param request
-        * @param data
-        */
-       @SuppressWarnings("unchecked")
-       protected void pushData(ITmfDataRequest<T> request, Vector<T> data) {
-               synchronized(request) {
-                       if (!request.isCompleted()) {
-                               T[] result = (T[]) Array.newInstance(fType, data.size());
-                               data.toArray(result);
-                               request.setData(result);
-                               request.handleData();
-                               data.removeAllElements();
-                       }
-               }
-       }
-
        /**
         * Initialize the provider based on the request. The context is
         * provider specific and will be updated by getNext().
@@ -305,50 +274,6 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
        public abstract ITmfContext armRequest(ITmfDataRequest<T> request);
        public abstract T getNext(ITmfContext context);
 
-//     public abstract void queueResult(T data);
-
-       /**
-        * Return the next piece of data based on the context supplied. The context
-        * would typically be updated for the subsequent read.
-        * 
-        * @param context
-        * @return
-        */
-//     private static final int TIMEOUT = 10000;
-////   public abstract T getNext(ITmfContext context) throws InterruptedException;
-////   private int getLevel = 0;
-//     public T getNext(ITmfContext context) throws InterruptedException {
-////           String name = Thread.currentThread().getName(); getLevel++;
-////           System.out.println("[" + System.currentTimeMillis() + "] " + name + " " + (getLevel) + " getNext() - entering");
-//             T data = fDataQueue.poll(TIMEOUT, TimeUnit.MILLISECONDS);
-//             if (data == null) {
-////                   if (Tracer.isErrorTraced()) Tracer.traceError(getName() + ": Request timeout on read");
-//                     throw new InterruptedException();
-//             }
-////           System.out.println("[" + System.currentTimeMillis() + "] " + name + " " + (getLevel) + " getNext() - leaving");
-////           getLevel--;
-//             return data;
-//     }
-//
-//     /**
-//      * Makes the generated result data available for getNext()
-//      * 
-//      * @param data
-//      */
-////   public abstract void queueResult(T data) throws InterruptedException;
-////   private int putLevel = 0;
-//     public void queueResult(T data) throws InterruptedException {
-////           String name = Thread.currentThread().getName(); putLevel++;
-////           System.out.println("[" + System.currentTimeMillis() + "] " + name + " " + (putLevel) + " queueResult() - entering");
-//             boolean ok = fDataQueue.offer(data, TIMEOUT, TimeUnit.MILLISECONDS);
-//             if (!ok) {
-////                   if (Tracer.isErrorTraced()) Tracer.traceError(getName() + ": Request timeout on write");
-//                     throw new InterruptedException();
-//             }
-////           System.out.println("[" + System.currentTimeMillis() + "] " + name + " " + (putLevel) + " queueResult() - leaving");
-////           putLevel--;
-//     }
-
        /**
         * Checks if the data meets the request completion criteria.
         * 
index 6a14a5889efcee570ec53992df02bf5e9160b1bb..420e7a803e65fe853ded00c9861b872511f62992 100644 (file)
@@ -40,12 +40,12 @@ public abstract class TmfEventProvider<T extends TmfEvent> extends TmfDataProvid
        
        @Override
        public boolean isCompleted(ITmfDataRequest<T> request, T data, int nbRead) {
-               boolean dataRequestCompleted = super.isCompleted(request, data, nbRead);
-               if (!dataRequestCompleted && request instanceof ITmfEventRequest<?> && !data.isNullRef()) {
+               boolean requestCompleted = super.isCompleted(request, data, nbRead);
+               if (!requestCompleted && request instanceof ITmfEventRequest<?> && !data.isNullRef()) {
                        TmfTimestamp endTime = ((ITmfEventRequest<?>) request).getRange().getEndTime();
                        return data.getTimestamp().compareTo(endTime, false) > 0;
                }
-               return dataRequestCompleted;
+               return requestCompleted;
        }
 
        @Override
@@ -53,7 +53,7 @@ public abstract class TmfEventProvider<T extends TmfEvent> extends TmfDataProvid
                if (request instanceof ITmfEventRequest<?>) {
                        ITmfEventRequest<T> eventRequest = (ITmfEventRequest<T>) request;
                        TmfCoalescedEventRequest<T> coalescedRequest = 
-                               new TmfCoalescedEventRequest<T>(fType, eventRequest.getRange(), eventRequest.getNbRequested(), eventRequest.getBlockize(), eventRequest.getExecType());
+                               new TmfCoalescedEventRequest<T>(fType, eventRequest.getRange(), eventRequest.getNbRequested(), eventRequest.getExecType());
                        coalescedRequest.addRequest(eventRequest);
                if (Tracer.isRequestTraced()) {
                        Tracer.traceRequest(request, "coalesced with " + coalescedRequest.getRequestId());
index ac2fafa5483c94ea6eb1a5d45ba53879c235a8b7..78f682ebf518efcb6c89c6545ddcd91e2e71c931 100644 (file)
@@ -29,7 +29,7 @@ package org.eclipse.linuxtools.tmf.event;
  * Notice that for performance reasons TmfEvent is NOT immutable. If a copy
  * of the event is needed, use the copy constructor.
  */
-public class TmfEvent extends TmfData {
+public class TmfEvent extends TmfData implements Cloneable {
 
     // ------------------------------------------------------------------------
     // Constants
@@ -190,4 +190,9 @@ public class TmfEvent extends TmfData {
                return "[TmfEvent(" + fEffectiveTimestamp + "," + fSource + "," + fType + "," + fContent + ")]";
        }
 
+       @Override
+       public TmfEvent clone() {
+               return new TmfEvent(this);
+       }
+
 }
index 825adb29ec9fbf5438b56d3af2864f8d226c4c8e..e787609100566e723a817ec1519659b70a23e8c3 100644 (file)
@@ -636,7 +636,8 @@ public class TmfExperiment<T extends TmfEvent> extends TmfEventProvider<T> imple
 //             fEventLog = openLogFile("TraceEvent.log");
 //             System.out.println(System.currentTimeMillis() + ": Experiment indexing started");
 
-               ITmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, TmfTimeRange.Eternity, TmfDataRequest.ALL_DATA, 1, ITmfDataRequest.ExecutionType.BACKGROUND) {
+               ITmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, TmfTimeRange.Eternity,
+                               TmfDataRequest.ALL_DATA, 1, ITmfDataRequest.ExecutionType.BACKGROUND) {
 
 //                     long indexingStart = System.nanoTime();
                        
@@ -644,26 +645,15 @@ public class TmfExperiment<T extends TmfEvent> extends TmfEventProvider<T> imple
                        TmfTimestamp lastTime  =  null;
 
                        @Override
-                       public void handleData() {
-                               TmfEvent[] events = getData();
-                               if (events.length > 0) {
-
-//                                     try {
-//                                             if (fEventLog != null) {
-//                                                     fEventLog.write(events[0].getTimestamp().toString());
-//                                                     fEventLog.newLine();
-//                                                     fEventLog.flush();
-//                                             }
-//                                     } catch (IOException e) {
-//                                             e.printStackTrace();
-//                                     }
-                                       
-                                       TmfTimestamp ts = events[0].getTimestamp();
+                       public void handleData(TmfEvent event) {
+                       super.handleData(event);
+                               if (event != null) {
+                                       TmfTimestamp ts = event.getTimestamp();
                                        if (startTime == null)
                                                startTime = new TmfTimestamp(ts);
                                        lastTime = new TmfTimestamp(ts);
 
-                                       if ((fNbRead % DEFAULT_INDEX_PAGE_SIZE) == 0) {
+                                       if ((getNbRead() % DEFAULT_INDEX_PAGE_SIZE) == 0) {
                                                updateExperiment();
                                        }
                                }
@@ -671,33 +661,21 @@ public class TmfExperiment<T extends TmfEvent> extends TmfEventProvider<T> imple
 
                        @Override
                        public void handleSuccess() {
-
-//                             try {
-//                                     fEventLog.close();
-//                                     fEventLog = null;
-//                             } catch (IOException e) {
-//                                     e.printStackTrace();
-//                             }
-
 //                             long indexingEnd = System.nanoTime();
 
                                updateExperiment();
 //                             System.out.println(System.currentTimeMillis() + ": Experiment indexing completed");
-//
+
 //                             long average = (indexingEnd - indexingStart) / fNbEvents;
 //                             System.out.println(getName() + ": start=" + startTime + ", end=" + lastTime + ", elapsed=" + (indexingEnd * 1.0 - indexingStart) / 1000000000);
 //                             System.out.println(getName() + ": nbEvents=" + fNbEvents + " (" + (average / 1000) + "." + (average % 1000) + " us/evt)");
-
-//                              for (int i = 0; i < fCheckpoints.size(); i++) {
-//                                      TmfCheckpoint checkpoint = fCheckpoints.get(i);
-//                                      System.out.println("fCheckpoints[" + i + "] " + checkpoint.getTimestamp() + ", " + checkpoint.getLocation().toString());
-//                              }
                        }
 
                        private void updateExperiment() {
-                               if (fNbRead != 0) {
+                               int nbRead = getNbRead();
+                               if (nbRead != 0) {
                                        fTimeRange = new TmfTimeRange(startTime, new TmfTimestamp(lastTime));
-                                       fNbEvents  = fNbRead;
+                                       fNbEvents  = nbRead;
                                        notifyListeners();
                                }
                        }
@@ -746,11 +724,6 @@ public class TmfExperiment<T extends TmfEvent> extends TmfEventProvider<T> imple
                broadcast(new TmfExperimentUpdatedSignal(this, this)); // , signal.getTrace()));
     }
 
-//     @Override
-//     public void queueResult(T data) {
-////           super.queueResult(data);
-//     }
-
     // ------------------------------------------------------------------------
     // TmfDataProvider
     // ------------------------------------------------------------------------
@@ -787,35 +760,28 @@ public class TmfExperiment<T extends TmfEvent> extends TmfEventProvider<T> imple
                                while (!isFinished[0]) {
 
 //                                     TmfEventRequest<T> subRequest = new TmfEventRequest<T>(eventRequest.getDataType(), new TmfTimeRange(timestamp[0], endTS), CHUNK_SIZE[0], eventRequest.getBlockize(), ExecutionType.BACKGROUND)
-                                       TmfDataRequest<T> subRequest = new TmfDataRequest<T>(eventRequest.getDataType(), nbRead[0], CHUNK_SIZE[0], eventRequest.getBlockize(), ExecutionType.BACKGROUND)
+//                                     TmfDataRequest<T> subRequest = new TmfDataRequest<T>(eventRequest.getDataType(), nbRead[0], CHUNK_SIZE[0], eventRequest.getBlockize(), ExecutionType.BACKGROUND)
+                                       TmfDataRequest<T> subRequest = new TmfDataRequest<T>(eventRequest.getDataType(), nbRead[0], CHUNK_SIZE[0], ExecutionType.BACKGROUND)
                                        {
-//                                             int count = 0;
                                                @Override
-                                               public void handleData() {
-                                                       T[] data = getData();
-//                                                     timestamp[0] = data[data.length-1].getTimestamp();
-//                                                     if (count == 0) {
-//                                                             System.out.println("First event of the block: " + data[0].getTimestamp());
-//                                                     }
-//                                                     count++;
-//                                                     Tracer.trace("Ndx: " + ((TmfEvent) data[0]).getTimestamp());
-                                                       eventRequest.setData(data);
-                                                       eventRequest.handleData();
-                                                       if (fNbRead == CHUNK_SIZE[0]) {
-                                                               nbRead[0] += fNbRead;
-//                                                             System.out.println("fNbRead=" + fNbRead + ", count=" + count +", total=" + nbRead[0] + ", TS=" + data[0].getTimestamp());
+                                               public void handleData(T data) {
+                                                       super.handleData(data);
+                                                       eventRequest.handleData(data);
+                                                       if (getNbRead() == CHUNK_SIZE[0]) {
+                                                               nbRead[0] += getNbRead();
                                                        }
-                                                       if (fNbRead > CHUNK_SIZE[0]) {
+                                                       if (getNbRead() > CHUNK_SIZE[0]) {
                                                                System.out.println("ERROR - Read too many events");
                                                        }
                                                }
+
                                                @Override
                                                public void handleCompleted() {
 //                                                     System.out.println("Request completed at: " + timestamp[0]);
-                                                       if (fNbRead < CHUNK_SIZE[0]) {
+                                                       if (getNbRead() < CHUNK_SIZE[0]) {
                                                                eventRequest.done();
                                                                isFinished[0] = Boolean.TRUE;
-                                                               nbRead[0] += fNbRead;
+                                                               nbRead[0] += getNbRead();
 //                                                             System.out.println("fNbRead=" + fNbRead + ", count=" + count +", total=" + nbRead[0]);
                                                        }
                                                        super.handleCompleted();
index bdffa045099797a4052e6ed0d8ef6d4652c1bf5d..7153383611c74296be65adec4444094125576129 100644 (file)
@@ -56,11 +56,6 @@ public interface ITmfDataRequest<T extends TmfData> {
      */
     public int getNbRequested();
 
-    /**
-     * @return the block size
-     */
-    public int getBlockize();
-
     /**
      * @return the number of events read so far
      */
@@ -79,9 +74,7 @@ public interface ITmfDataRequest<T extends TmfData> {
        // Data handling
        // ------------------------------------------------------------------------
 
-    public void setData(T[] data);
-    public T[] getData();
-    public void handleData();
+    public void handleData(T data);
 
        // ------------------------------------------------------------------------
        // Request handling
index 73ec5a7bfa1533db0230e52b4a5b43fd482698b1..38383c04b1e89c9e97fa8ce8422f0b3747d7ce59 100644 (file)
@@ -88,13 +88,11 @@ public class TmfCoalescedDataRequest<T extends TmfData> extends TmfDataRequest<T
                fRequests.add(request);
        }
 
-       public synchronized boolean isCompatible(ITmfDataRequest<T> request) {
+       public boolean isCompatible(ITmfDataRequest<T> request) {
 
-               boolean ok = !isCompleted();
-               ok &= request.getIndex()       == getIndex();
-               ok &= request.getNbRequested() == getNbRequested();
-               ok &= request.getBlockize()    == getBlockize();
-               ok &= request.getExecType()    == getExecType();
+               boolean ok = request.getIndex() == getIndex();
+               ok &= request.getNbRequested()  == getNbRequested();
+               ok &= request.getExecType()     == getExecType();
                
                return ok;
        }
@@ -104,15 +102,20 @@ public class TmfCoalescedDataRequest<T extends TmfData> extends TmfDataRequest<T
     // ------------------------------------------------------------------------
 
     @Override
-       public synchronized void handleData() {
-       for (ITmfDataRequest<T> request : fRequests) {
-               request.setData(getData());
-               request.handleData();
-       }
+       public void handleData(T data) {
+               super.handleData(data);
+       // Don't call sub-requests handleData() unless this is a
+               // TmfCoalescedDataRequest; extended classes should call
+               // the sub-requests handleData().
+               if (getClass() == TmfCoalescedDataRequest.class) {
+               for (ITmfDataRequest<T> request : fRequests) {
+                       request.handleData(data);
+               }
+               }
     }
 
-    @Override
-    public synchronized void done() {
+       @Override
+    public void done() {
        for (ITmfDataRequest<T> request : fRequests) {
                request.done();
        }
@@ -120,7 +123,7 @@ public class TmfCoalescedDataRequest<T extends TmfData> extends TmfDataRequest<T
     }
 
     @Override
-    public synchronized void fail() {
+    public void fail() {
        for (ITmfDataRequest<T> request : fRequests) {
                request.fail();
        }
@@ -128,7 +131,7 @@ public class TmfCoalescedDataRequest<T extends TmfData> extends TmfDataRequest<T
     }
 
     @Override
-    public synchronized void cancel() {
+    public void cancel() {
        for (ITmfDataRequest<T> request : fRequests) {
                request.cancel();
        }
@@ -160,7 +163,7 @@ public class TmfCoalescedDataRequest<T extends TmfData> extends TmfDataRequest<T
     @Override
     public String toString() {
                return "[TmfCoalescedDataRequest(" + getRequestId() + "," + getDataType().getSimpleName() 
-                       + "," + getIndex() + "," + getNbRequested() + "," + getBlockize() + ")]";
+                       + "," + getIndex() + "," + getNbRequested() + ")]";
     }
 
 }
index e617a1841dd5c5c5cd7575f1f7d13acda4b1ec3d..94c8e4c6271c99d92486d01212fd18b0af9329d5 100644 (file)
@@ -90,7 +90,6 @@ public class TmfCoalescedEventRequest<T extends TmfEvent> extends TmfCoalescedDa
        public boolean isCompatible(ITmfDataRequest<T> request) {
                if (request instanceof ITmfEventRequest<?>) {
                        boolean ok = getNbRequested() == request.getNbRequested();
-                       ok &= getBlockize() == request.getBlockize();
                        ok &= getExecType() == request.getExecType();
                        if (ok) {
                                TmfTimestamp startTime = ((ITmfEventRequest<T>) request).getRange().getStartTime();
@@ -110,22 +109,23 @@ public class TmfCoalescedEventRequest<T extends TmfEvent> extends TmfCoalescedDa
     // ------------------------------------------------------------------------
 
     @Override
-       public void handleData() {
+       public void handleData(T data) {
+       super.handleData(data);
        for (ITmfDataRequest<T> request : fRequests) {
-                       if (request instanceof TmfEventRequest<?>) {
-                       TmfEventRequest<T> req = (TmfEventRequest<T>) request;
-                       T[] data = getData();
-                       TmfTimestamp ts = data[0].getTimestamp();
-                       if (data.length > 0 && req.getRange().contains(ts)) {
-                       req.setData(data);
-                       req.handleData();
-                       }
-               }
-               else {
-                       TmfDataRequest<T> req = (TmfDataRequest<T>) request;
-                       T[] data = getData();
-                       req.setData(data);
-                       req.handleData();
+               if (data == null) {
+                       request.handleData(null);
+               } else {
+                       if (request instanceof TmfEventRequest<?>) {
+                               TmfEventRequest<T> req = (TmfEventRequest<T>) request;
+                               TmfTimestamp ts = data.getTimestamp();
+                               if (req.getRange().contains(ts)) {
+                                       req.handleData(data);
+                               }
+                       }
+                       else {
+                               TmfDataRequest<T> req = (TmfDataRequest<T>) request;
+                               req.handleData(data);
+                       }
                }
        }
     }
@@ -166,7 +166,7 @@ public class TmfCoalescedEventRequest<T extends TmfEvent> extends TmfCoalescedDa
     @Override
     public String toString() {
                return "[TmfCoalescedEventRequest(" + getRequestId() + "," + getDataType().getSimpleName() 
-                       + "," + getRange() + "," + getNbRequested() + "," + getBlockize() + ")]";
+                       + "," + getRange() + "," + getNbRequested() + ")]";
     }
 
 }
index 11aea3c7f812f81e96a06682545e0a730baf3d6a..b369a9a6d6075f524def25904e1800ec4d6f4efe 100644 (file)
@@ -90,8 +90,7 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
     private final int                  fRequestId;     // A unique request ID
     private final int                  fIndex;         // The index (rank) of the requested event
     private final int                  fNbRequested;   // The number of requested events (ALL_DATA for all)
-    private final int                  fBlockSize;     // The maximum number of events per chunk
-    protected     int                  fNbRead;        // The number of reads so far
+    private       int                  fNbRead;        // The number of reads so far
 
     private final   Object lock;
     private boolean fRequestRunning   = false;
@@ -99,8 +98,6 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
     private boolean fRequestFailed    = false;
     private boolean fRequestCanceled  = false;
 
-    private T[] fData; // Data object
-    
     // ------------------------------------------------------------------------
     // Constructors
     // ------------------------------------------------------------------------
@@ -165,7 +162,6 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
        fDataType    = dataType;
        fIndex       = index;
        fNbRequested = nbRequested;
-       fBlockSize   = blockSize;
        fExecType    = execType;
        fNbRead      = 0;
         lock         = new Object();
@@ -212,13 +208,6 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
         return fNbRequested;
     }
 
-    /**
-     * @return the block size
-     */
-    public int getBlockize() {
-        return fBlockSize;
-    }
-
     /**
      * @return the number of events read so far
      */
@@ -268,20 +257,9 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
     /** 
      * Sets the data object to specified value. To be called by the 
      * asynchronous method implementor.
+     * 
      * @param data Data value to set.
      */
-    public synchronized void setData(T[] data) {
-       fNbRead += data.length;
-       fData = data;
-    }
-    
-    /**
-     * Returns the data value, null if not set.
-     */
-    public synchronized T[] getData() {
-       return fData;
-    }
-    
     /**
      * Handle a block of incoming data. This method is called every time
      * a block of data becomes available.
@@ -295,9 +273,13 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
      *   (or a copy) if some persistence is needed between invocations.
      * - When there is no more data, done() is called. 
      *
-     * @param events - an array of events
+     * @param events - an events
      */
-    public abstract void handleData();
+    public void handleData(T data) {
+        if (data != null) {
+               fNbRead++;
+        }
+    }
 
     public void handleStarted() {
     }
@@ -356,7 +338,7 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
         if (Tracer.isRequestTraced()) Tracer.traceRequest(this, "starting");
         synchronized(lock) {
             fRequestRunning = true;
-            lock.notify();
+            lock.notifyAll();
         }
         handleStarted();
         if (Tracer.isRequestTraced()) Tracer.traceRequest(this, "started");
@@ -373,7 +355,7 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
                 fRequestCompleted = true;
             }
             handleCompleted();
-            lock.notify();
+            lock.notifyAll();
         }
     }
 
@@ -421,7 +403,6 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
     @Override
     public String toString() {
                return "[TmfDataRequest(" + fRequestId + "," + fDataType.getSimpleName() 
-                       + "," + fIndex + "," + fNbRequested + "," + fBlockSize + ")]";
+                       + "," + fIndex + "," + fNbRequested + ")]";
     }
-
 }
index 66daa8e92a45130a4d84c3b98603aaaad47c1a1e..05f75c8e0f8b993c8ab3da3e03506dfac94144a2 100644 (file)
@@ -114,7 +114,7 @@ public abstract class TmfEventRequest<T extends TmfEvent> extends TmfDataRequest
     @Override
     public String toString() {
                return "[TmfEventRequest(" + getRequestId() + "," + getDataType().getSimpleName() 
-                       + "," + getRange() + "," + getNbRequested() + "," + getBlockize() + ")]";
+                       + "," + getRange() + "," + getNbRequested() + ")]";
     }
 
 }
index 2d15f9f6a994373d065d47d27c44bce24bd62d9c..5788325e48d93b96159cab851d5c1a0b6572f792 100644 (file)
@@ -23,12 +23,6 @@ import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;
 import org.eclipse.linuxtools.tmf.request.ITmfEventRequest;
-import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
-import org.eclipse.linuxtools.tmf.request.TmfEventRequest;
-import org.eclipse.linuxtools.tmf.request.ITmfDataRequest.ExecutionType;
-import org.eclipse.linuxtools.tmf.signal.TmfSignalHandler;
-import org.eclipse.linuxtools.tmf.signal.TmfTraceOpenedSignal;
-import org.eclipse.linuxtools.tmf.signal.TmfTraceUpdatedSignal;
 
 /**
  * <b><u>TmfTrace</u></b>
@@ -380,171 +374,73 @@ public abstract class TmfTrace<T extends TmfEvent> extends TmfEventProvider<T> i
     // Indexing
     // ------------------------------------------------------------------------
 
-       /*
-        * The purpose of the index is to keep the information needed to rapidly
-        * restore the traces contexts at regular intervals (every INDEX_PAGE_SIZE
-        * event).
-        */
-
-       @SuppressWarnings("unchecked")
-       private void indexTrace(boolean waitForCompletion) {
-
-               fCheckpoints.clear();
-               
-               ITmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, TmfTimeRange.Eternity, TmfDataRequest.ALL_DATA, 1, ITmfDataRequest.ExecutionType.BACKGROUND) {
-
-                       TmfTimestamp startTime =  null;
-                       TmfTimestamp lastTime  =  null;
-
-                       @Override
-                       public void handleData() {
-                               TmfEvent[] events = getData();
-                               if (events.length > 0) {
-                                       TmfTimestamp ts = events[0].getTimestamp();
-                                       if (startTime == null) {
-                                               startTime = new TmfTimestamp(ts);
-                                               fStartTime = startTime;
-                                       }
-                                       lastTime = new TmfTimestamp(ts);
-
-                                       if ((fNbRead % DEFAULT_INDEX_PAGE_SIZE) == 0) {
-                                               updateTraceData();
-                                       }
-                               }
-                       }
-
-                       @Override
-                       public void handleSuccess() {
-                               updateTraceData();
-                       }
-
-                       private void updateTraceData() {
-                               if (fNbRead != 0) {
-                                       fEndTime  = new TmfTimestamp(lastTime);
-                                       fNbEvents = fNbRead;
-                                       notifyListeners();
-                               }
-                       }
-               };
-
-               sendRequest((ITmfDataRequest<T>) request);
-               if (waitForCompletion)
-                       try {
-                               request.waitForCompletion();
-                       } catch (InterruptedException e) {
-                               e.printStackTrace();
-                       }
-       }
+//     /*
+//      * The purpose of the index is to keep the information needed to rapidly
+//      * restore the traces contexts at regular intervals (every INDEX_PAGE_SIZE
+//      * event).
+//      */
+//
+//     @SuppressWarnings({ "unchecked", "unused" })
+//     private void indexTrace(boolean waitForCompletion) {
+//
+//             fCheckpoints.clear();
+//             
+//             ITmfEventRequest<TmfEvent> request = new TmfEventRequest<TmfEvent>(TmfEvent.class, TmfTimeRange.Eternity, TmfDataRequest.ALL_DATA, 1, ITmfDataRequest.ExecutionType.BACKGROUND) {
+//
+//                     TmfTimestamp startTime =  null;
+//                     TmfTimestamp lastTime  =  null;
+//
+//                     @Override
+//                     public void handleData() {
+//                             TmfEvent[] events = getData();
+//                             if (events.length > 0) {
+//                                     TmfTimestamp ts = events[0].getTimestamp();
+//                                     if (startTime == null) {
+//                                             startTime = new TmfTimestamp(ts);
+//                                             fStartTime = startTime;
+//                                     }
+//                                     lastTime = new TmfTimestamp(ts);
+//
+//                                     if ((fNbRead % DEFAULT_INDEX_PAGE_SIZE) == 0) {
+//                                             updateTraceData();
+//                                     }
+//                             }
+//                     }
+//
+//                     @Override
+//                     public void handleSuccess() {
+//                             updateTraceData();
+//                     }
+//
+//                     private void updateTraceData() {
+//                             if (fNbRead != 0) {
+//                                     fEndTime  = new TmfTimestamp(lastTime);
+//                                     fNbEvents = fNbRead;
+//                                     notifyListeners();
+//                             }
+//                     }
+//             };
+//
+//             sendRequest((ITmfDataRequest<T>) request);
+//             if (waitForCompletion)
+//                     try {
+//                             request.waitForCompletion();
+//                     } catch (InterruptedException e) {
+//                             e.printStackTrace();
+//                     }
+//     }
        
-       protected void notifyListeners() {
-       broadcast(new TmfTraceUpdatedSignal(this, this, new TmfTimeRange(fStartTime, fEndTime)));
-       }
+//     protected void notifyListeners() {
+//     broadcast(new TmfTraceUpdatedSignal(this, this, new TmfTimeRange(fStartTime, fEndTime)));
+//     }
    
        // ------------------------------------------------------------------------
        // TmfDataProvider
        // ------------------------------------------------------------------------
 
-       @Override
-       protected void queueBackgroundRequest(final ITmfDataRequest<T> request, final int blockSize, final boolean indexing) {
-
-               // TODO: Handle the data requests also...
-               if (!(request instanceof ITmfEventRequest<?>)) {
-                       super.queueRequest(request);
-                       return;
-               }
-               final ITmfEventRequest<T> eventRequest = (ITmfEventRequest<T>) request;
-
-               Thread thread = new Thread() {
-                       @Override
-                       public void run() {
-                               
-//                             final long requestStart = System.nanoTime();
-
-                               final Integer[] CHUNK_SIZE = new Integer[1];
-                               CHUNK_SIZE[0] = blockSize + ((indexing) ? 1 : 0);
-                               
-                               final Integer[] nbRead = new Integer[1];
-                               nbRead[0] = 0;
-
-//                             final TmfTimestamp[] timestamp = new TmfTimestamp[1];
-//                             timestamp[0] = new TmfTimestamp(eventRequest.getRange().getStartTime());
-//                             final TmfTimestamp endTS = eventRequest.getRange().getEndTime();
-
-                               final Boolean[] isFinished = new Boolean[1];
-                               isFinished[0] = Boolean.FALSE;
-
-                               while (!isFinished[0]) {
-
-//                                     TmfEventRequest<T> subRequest = new TmfEventRequest<T>(eventRequest.getDataType(), new TmfTimeRange(timestamp[0], endTS), CHUNK_SIZE[0], eventRequest.getBlockize(), ExecutionType.BACKGROUND)
-                                       TmfDataRequest<T> subRequest = new TmfDataRequest<T>(eventRequest.getDataType(), nbRead[0], CHUNK_SIZE[0], eventRequest.getBlockize(), ExecutionType.BACKGROUND)
-                                       {
-//                                             int count = 0;
-                                               @Override
-                                               public void handleData() {
-                                                       T[] data = getData();
-//                                                     timestamp[0] = data[data.length-1].getTimestamp();
-//                                                     if (count == 0) {
-//                                                             System.out.println("First event of the block: " + data[0].getTimestamp());
-//                                                     }
-//                                                     count++;
-//                                                     Tracer.trace("Ndx: " + ((TmfEvent) data[0]).getTimestamp());
-                                                       eventRequest.setData(data);
-                                                       eventRequest.handleData();
-                                                       if (fNbRead == CHUNK_SIZE[0]) {
-                                                               nbRead[0] += fNbRead;
-//                                                             System.out.println("fNbRead=" + fNbRead + ", count=" + count +", total=" + nbRead[0] + ", TS=" + data[0].getTimestamp());
-                                                       }
-                                                       if (fNbRead > CHUNK_SIZE[0]) {
-                                                               System.out.println("ERROR - Read too many events");
-                                                       }
-                                               }
-                                               @Override
-                                               public void handleCompleted() {
-//                                                     System.out.println("Request completed at: " + timestamp[0]);
-                                                       if (fNbRead < CHUNK_SIZE[0]) {
-                                                               eventRequest.done();
-                                                               isFinished[0] = Boolean.TRUE;
-                                                               nbRead[0] += fNbRead;
-//                                                             System.out.println("fNbRead=" + fNbRead + ", count=" + count +", total=" + nbRead[0]);
-                                                       }
-                                                       super.handleCompleted();
-                                               }
-                                       };
-
-                                       if (!isFinished[0]) {
-                                               queueRequest(subRequest);
-
-                                               try {
-                                                       subRequest.waitForCompletion();
-//                                                     System.out.println("Finished at " + timestamp[0]);
-                                               } catch (InterruptedException e) {
-                                                       e.printStackTrace();
-                                               }
-
-//                                             TmfTimestamp newTS = new TmfTimestamp(timestamp[0].getValue() + 1, timestamp[0].getScale(), timestamp[0].getPrecision());
-//                                             timestamp[0] = newTS;
-                                               CHUNK_SIZE[0] = blockSize;
-//                                             System.out.println("New timestamp: " + timestamp[0]);
-                                       }
-                               }
-//                             final long requestEnded = System.nanoTime();
-//                             System.out.println("Background request completed. Elapsed= " + (requestEnded * 1.0 - requestStart) / 1000000000);
-                       }
-               };
-
-               thread.start();
-       }
-
-       // ------------------------------------------------------------------------
-       // Signal handlers
-       // ------------------------------------------------------------------------
-
-       @TmfSignalHandler
-       public void traceOpened(TmfTraceOpenedSignal signal) {
-           ITmfTrace trace = signal.getTrace();
-           if (trace == this) {
-               indexTrace(false);
-           }
-       }
+//     @Override
+//    protected void queueBackgroundRequest(final ITmfDataRequest<T> request, final int blockSize, final boolean adjust) {
+//             super.queueBackgroundRequest(request, fIndexPageSize, true);
+//    }
 
 }
This page took 0.0751 seconds and 5 git commands to generate.