1 /*******************************************************************************
2 * Copyright (c) 2013, 2014 Ericsson
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * Marc-Andre Laperle - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.tracecompass
.internal
.tmf
.core
.trace
.indexer
;
15 import java
.util
.ArrayList
;
16 import java
.util
.Collections
;
17 import java
.util
.List
;
19 import org
.eclipse
.tracecompass
.tmf
.core
.timestamp
.TmfTimeRange
;
20 import org
.eclipse
.tracecompass
.tmf
.core
.trace
.ITmfTrace
;
21 import org
.eclipse
.tracecompass
.tmf
.core
.trace
.indexer
.checkpoint
.ITmfCheckpoint
;
22 import org
.eclipse
.tracecompass
.tmf
.core
.trace
.indexer
.checkpoint
.ITmfCheckpointIndex
;
25 * A checkpoint index that store all checkpoints in memory.
27 * @author Marc-Andre Laperle
29 public class TmfMemoryIndex
implements ITmfCheckpointIndex
, ICheckpointCollection
{
31 private final List
<ITmfCheckpoint
> fCheckpoints
;
34 * Creates an index for the given trace
36 * @param trace the trace
38 public TmfMemoryIndex(ITmfTrace trace
) {
39 fCheckpoints
= new ArrayList
<>();
43 public void dispose() {
48 public void insert(ITmfCheckpoint checkpoint
) {
49 fCheckpoints
.add(checkpoint
);
53 public ITmfCheckpoint
get(long checkpoint
) {
54 return fCheckpoints
.get((int)checkpoint
);
58 public long binarySearch(ITmfCheckpoint checkpoint
) {
59 return Collections
.binarySearch(fCheckpoints
, checkpoint
);
63 public boolean isEmpty() {
64 return fCheckpoints
.isEmpty();
69 return fCheckpoints
.size();
73 public boolean isCreatedFromScratch() {
78 public void setTimeRange(TmfTimeRange timeRange
) {
82 public void setNbEvents(long nbEvents
) {
86 public TmfTimeRange
getTimeRange() {
91 public long getNbEvents() {
96 public void setIndexComplete() {
100 public void delete() {