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;
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
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;
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;
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;
/**
/**
* 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;
* 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.