X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=org.eclipse.linuxtools.tmf.core%2Fsrc%2Forg%2Feclipse%2Flinuxtools%2Ftmf%2Fcore%2Ftrace%2FTmfCheckpointIndexer.java;h=0dcfa9c18b4f26370771cd7b29914f7b658d29c6;hb=d62bb1853c3388385d5ce10b0302b3dde139c3ab;hp=66c700fb064979b363473a9986dfcf51b281efdd;hpb=0283f7ffc576ed1b4e3c80c2614362785fdcdb7f;p=deliverable%2Ftracecompass.git diff --git a/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/trace/TmfCheckpointIndexer.java b/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/trace/TmfCheckpointIndexer.java index 66c700fb06..0dcfa9c18b 100644 --- a/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/trace/TmfCheckpointIndexer.java +++ b/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/trace/TmfCheckpointIndexer.java @@ -44,22 +44,20 @@ import org.eclipse.linuxtools.tmf.core.signal.TmfTraceUpdatedSignal; * Locating a specific checkpoint is trivial for both rank (rank % interval) and * timestamp (bsearch in the array). * - * @param The trace event type - * * @version 1.0 * @author Francois Chouinard * * @see ITmfTrace * @see ITmfEvent */ -public class TmfCheckpointIndexer> implements ITmfTraceIndexer { +public class TmfCheckpointIndexer implements ITmfTraceIndexer { // ------------------------------------------------------------------------ // Attributes // ------------------------------------------------------------------------ // The event trace to index - protected final ITmfTrace fTrace; + protected final ITmfTrace fTrace; // The interval between checkpoints private final int fCheckpointInterval; @@ -76,7 +74,7 @@ public class TmfCheckpointIndexer> implements ITm /** * The indexing request */ - private ITmfEventRequest fIndexingRequest = null; + private ITmfEventRequest fIndexingRequest = null; // ------------------------------------------------------------------------ // Construction @@ -88,7 +86,7 @@ public class TmfCheckpointIndexer> implements ITm * * @param trace the trace to index */ - public TmfCheckpointIndexer(final ITmfTrace trace) { + public TmfCheckpointIndexer(final ITmfTrace trace) { this(trace, TmfDataProvider.DEFAULT_BLOCK_SIZE); } @@ -98,7 +96,7 @@ public class TmfCheckpointIndexer> implements ITm * @param trace the trace to index * @param interval the checkpoints interval */ - public TmfCheckpointIndexer(final ITmfTrace trace, final int interval) { + public TmfCheckpointIndexer(final ITmfTrace trace, final int interval) { fTrace = trace; fCheckpointInterval = interval; fTraceIndex = new ArrayList(); @@ -172,22 +170,13 @@ public class TmfCheckpointIndexer> implements ITm // Build a background request for all the trace data. The index is // updated as we go by readNextEvent(). - fIndexingRequest = new TmfEventRequest(ITmfEvent.class, + fIndexingRequest = new TmfEventRequest(ITmfEvent.class, range, offset, TmfDataRequest.ALL_DATA, fCheckpointInterval, ITmfDataRequest.ExecutionType.BACKGROUND) { - private ITmfTimestamp startTime = null; - private ITmfTimestamp lastTime = null; - @Override public void handleData(final ITmfEvent event) { super.handleData(event); if (event != null) { - final ITmfTimestamp timestamp = event.getTimestamp(); - if (startTime == null) { - startTime = timestamp.clone(); - } - lastTime = timestamp.clone(); - // Update the trace status at regular intervals if ((getNbRead() % fCheckpointInterval) == 0) { updateTraceStatus(); @@ -208,8 +197,8 @@ public class TmfCheckpointIndexer> implements ITm } private void updateTraceStatus() { - if (getNbRead() != 0) { - signalNewTimeRange(startTime, lastTime); + if (fTrace.getNbEvents() > 0) { + signalNewTimeRange(fTrace.getStartTime(), fTrace.getEndTime()); } } }; @@ -307,7 +296,7 @@ public class TmfCheckpointIndexer> implements ITm * @return the corresponding context */ private ITmfContext restoreCheckpoint(final int checkpoint) { - ITmfLocation location = null; + ITmfLocation location = null; int index = 0; synchronized (fTraceIndex) { if (!fTraceIndex.isEmpty()) { @@ -342,7 +331,7 @@ public class TmfCheckpointIndexer> implements ITm if (context instanceof TmfExperimentContext) { return saveExpContext(context); } - TmfContext ctx = new TmfContext(context.getLocation().clone(), context.getRank()); + TmfContext ctx = new TmfContext(context.getLocation(), context.getRank()); return ctx; } @@ -352,10 +341,10 @@ public class TmfCheckpointIndexer> implements ITm ITmfContext[] trcCtxts = new TmfContext[size]; for (int i = 0; i < size; i++) { ITmfContext ctx = expContext.getContexts()[i]; - trcCtxts[i] = (ctx != null) ? new TmfContext(ctx.getLocation().clone(), ctx.getRank()) : null; + trcCtxts[i] = (ctx != null) ? new TmfContext(ctx.getLocation(), ctx.getRank()) : null; } TmfExperimentContext expCtx = new TmfExperimentContext(trcCtxts); - expCtx.setLocation(context.getLocation().clone()); + expCtx.setLocation(context.getLocation()); expCtx.setRank(context.getRank()); ITmfEvent[] trcEvts = expCtx.getEvents(); for (int i = 0; i < size; i++) { @@ -379,13 +368,13 @@ public class TmfCheckpointIndexer> implements ITm int size = expContext.getContexts().length; ITmfContext[] trcCtxts = new ITmfContext[size]; for (int i = 0; i < size; i++) { - ITmfTrace trace = ((TmfExperiment) fTrace).getTraces()[i]; + ITmfTrace trace = ((TmfExperiment) fTrace).getTraces()[i]; ITmfContext ctx = expContext.getContexts()[i]; - trcCtxts[i] = trace.seekEvent(ctx.getLocation().clone()); + trcCtxts[i] = trace.seekEvent(ctx.getLocation()); trcCtxts[i].setRank(ctx.getRank()); } TmfExperimentContext ctx = new TmfExperimentContext(trcCtxts); - ctx.setLocation(context.getLocation().clone()); + ctx.setLocation(context.getLocation()); ctx.setRank(context.getRank()); ITmfEvent[] trcEvts = expContext.getEvents(); for (int i = 0; i < size; i++) {