tmf: Add the dependency level to the analyses' event requests
authorGeneviève Bastien <gbastien+lttng@versatic.net>
Wed, 27 Apr 2016 17:34:55 +0000 (13:34 -0400)
committerGenevieve Bastien <gbastien+lttng@versatic.net>
Wed, 4 May 2016 13:47:58 +0000 (09:47 -0400)
Change-Id: Ib665794aaba3ff56599a2db6041c01f0ee0149f7
Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/71541
Reviewed-by: Hudson CI
Reviewed-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
Tested-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
analysis/org.eclipse.tracecompass.analysis.os.linux.core/src/org/eclipse/tracecompass/analysis/os/linux/core/latency/SystemCallLatencyAnalysis.java
analysis/org.eclipse.tracecompass.analysis.timing.core/src/org/eclipse/tracecompass/analysis/timing/core/segmentstore/AbstractSegmentStoreAnalysisEventBasedModule.java
tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statesystem/TmfStateSystemAnalysisModule.java

index 67ee8795d81781455f083e3f979251be2195c51e..912a6e4f65d1ee48bc7a28113320af68dbbc3878 100644 (file)
@@ -14,6 +14,7 @@ import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Map;
@@ -23,15 +24,19 @@ import java.util.stream.Collectors;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.tracecompass.analysis.os.linux.core.kernel.KernelTidAspect;
+import org.eclipse.tracecompass.analysis.os.linux.core.tid.TidAnalysisModule;
 import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelAnalysisEventLayout;
 import org.eclipse.tracecompass.analysis.os.linux.core.trace.IKernelTrace;
 import org.eclipse.tracecompass.analysis.timing.core.segmentstore.AbstractSegmentStoreAnalysisEventBasedModule;
 import org.eclipse.tracecompass.segmentstore.core.ISegment;
 import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
+import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisModule;
 import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
 import org.eclipse.tracecompass.tmf.core.segment.ISegmentAspect;
+import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 
 /**
  * @author Alexandre Montplaisir
@@ -54,6 +59,19 @@ public class SystemCallLatencyAnalysis extends AbstractSegmentStoreAnalysisEvent
         return ID;
     }
 
+    @Override
+    protected Iterable<IAnalysisModule> getDependentAnalyses() {
+        ITmfTrace trace = getTrace();
+        if (trace == null) {
+            throw new IllegalStateException();
+        }
+        IAnalysisModule module = trace.getAnalysisModule(TidAnalysisModule.ID);
+        if (module == null) {
+            return Collections.EMPTY_SET;
+        }
+        return ImmutableSet.of(module);
+    }
+
     @Override
     public Iterable<ISegmentAspect> getSegmentAspects() {
         return BASE_ASPECTS;
@@ -74,7 +92,7 @@ public class SystemCallLatencyAnalysis extends AbstractSegmentStoreAnalysisEvent
         return checkNotNull((Object[]) ois.readObject());
     }
 
-    private static class SyscallLatencyAnalysisRequest extends AbstractSegmentStoreAnalysisRequest {
+    private class SyscallLatencyAnalysisRequest extends AbstractSegmentStoreAnalysisRequest {
 
         private final Map<Integer, SystemCall.InitialInfo> fOngoingSystemCalls = new HashMap<>();
         private @Nullable IKernelAnalysisEventLayout fLayout;
index b620c7557349ac6f31c796e6e717483ac22e9e9f..d66c5cc42fb6ba79c1e69b2fa85527ec60d112b0 100644 (file)
@@ -18,6 +18,7 @@ import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
 import org.eclipse.tracecompass.tmf.core.exceptions.TmfAnalysisException;
 import org.eclipse.tracecompass.tmf.core.request.ITmfEventRequest;
 import org.eclipse.tracecompass.tmf.core.request.TmfEventRequest;
+import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
 import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
 
 /**
@@ -77,7 +78,7 @@ public abstract class AbstractSegmentStoreAnalysisEventBasedModule extends Abstr
     /**
      * Abstract event request to fill a a segment store
      */
-    protected static abstract class AbstractSegmentStoreAnalysisRequest extends TmfEventRequest {
+    protected abstract class AbstractSegmentStoreAnalysisRequest extends TmfEventRequest {
 
         private final ISegmentStore<ISegment> fSegmentStore;
 
@@ -88,7 +89,7 @@ public abstract class AbstractSegmentStoreAnalysisEventBasedModule extends Abstr
          *            a segment store to fill
          */
         public AbstractSegmentStoreAnalysisRequest(ISegmentStore<ISegment> segmentStore) {
-            super(ITmfEvent.class, 0, ITmfEventRequest.ALL_DATA, ExecutionType.BACKGROUND);
+            super(ITmfEvent.class, TmfTimeRange.ETERNITY, 0, ITmfEventRequest.ALL_DATA, ExecutionType.BACKGROUND, AbstractSegmentStoreAnalysisEventBasedModule.this.getDependencyLevel());
             /*
              * We do NOT make a copy here! We want to modify the list that was
              * passed in parameter.
index b9b0ad08a953e63927e33fbcc6015140ec04d633..ae98a632e1f7677526be6ace8e5a5226770c1df0 100644 (file)
@@ -479,7 +479,8 @@ public abstract class TmfStateSystemAnalysisModule extends TmfAbstractAnalysisMo
                     timeRange,
                     index,
                     ITmfEventRequest.ALL_DATA,
-                    ITmfEventRequest.ExecutionType.BACKGROUND);
+                    ITmfEventRequest.ExecutionType.BACKGROUND,
+                    TmfStateSystemAnalysisModule.this.getDependencyLevel());
             this.sci = sp;
             trace = sci.getTrace();
 
This page took 0.030361 seconds and 5 git commands to generate.