ss: Move plugins to Trace Compass namespace
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core / src / org / eclipse / linuxtools / tmf / core / trace / indexer / TmfFlatArrayTraceIndex.java
CommitLineData
032ecd45
MAL
1/*******************************************************************************
2 * Copyright (c) 2013 Ericsson
3 *
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
8 *
9 * Contributors:
10 * Marc-Andre Laperle - Initial API and implementation
11 *******************************************************************************/
12
13package org.eclipse.linuxtools.tmf.core.trace.indexer;
14
15import java.io.File;
16
17import org.eclipse.linuxtools.internal.tmf.core.trace.indexer.FlatArray;
18import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimeRange;
19import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
20import org.eclipse.linuxtools.tmf.core.trace.TmfTraceManager;
21import org.eclipse.linuxtools.tmf.core.trace.indexer.checkpoint.ITmfCheckpoint;
22import org.eclipse.linuxtools.tmf.core.trace.indexer.checkpoint.ITmfCheckpointIndex;
23
24/**
25 * <p>A checkpoint index that uses a FlatArray to store and search checkpoints by
26 * time stamps and by checkpoint rank.</p>
27 *
28 * <p>Note: This index alone will not work for
29 * traces that have events with time stamps that are out of order.</p>
30 *
31 * @since 3.0
32 * @author Marc-Andre Laperle
33 */
34public class TmfFlatArrayTraceIndex implements ITmfCheckpointIndex {
35
36 private final FlatArray fCheckpoints;
37
38 /**
39 * Creates an index for the given trace
40 *
41 * @param trace the trace
42 */
43 public TmfFlatArrayTraceIndex(ITmfTrace trace) {
44 fCheckpoints = new FlatArray(getIndexFile(trace, FlatArray.INDEX_FILE_NAME), (ITmfPersistentlyIndexable)trace);
45 }
46
47 private static File getIndexFile(ITmfTrace trace, String fileName) {
48 String directory = TmfTraceManager.getSupplementaryFileDir(trace);
49 return new File(directory + fileName);
50 }
51
52 @Override
53 public void dispose() {
54 fCheckpoints.dispose();
55 }
56
57 @Override
58 public void insert(ITmfCheckpoint checkpoint) {
59 fCheckpoints.insert(checkpoint);
60 }
61
62 @Override
63 public ITmfCheckpoint get(long checkpoint) {
64 return fCheckpoints.get(checkpoint);
65 }
66
67 @Override
68 public long binarySearch(ITmfCheckpoint checkpoint) {
69 return fCheckpoints.binarySearch(checkpoint);
70 }
71
72 @Override
73 public boolean isEmpty() {
74 return size() == 0;
75 }
76
77 @Override
78 public int size() {
79 return fCheckpoints.size();
80 }
81
82 @Override
83 public boolean isCreatedFromScratch() {
84 return fCheckpoints.isCreatedFromScratch();
85 }
86
87 @Override
88 public void setTimeRange(TmfTimeRange timeRange) {
89 fCheckpoints.setTimeRange(timeRange);
90 }
91
92 @Override
93 public void setNbEvents(long nbEvents) {
94 fCheckpoints.setNbEvents(nbEvents);
95 }
96
97 @Override
98 public TmfTimeRange getTimeRange() {
99 return fCheckpoints.getTimeRange();
100 }
101
102 @Override
103 public long getNbEvents() {
104 return fCheckpoints.getNbEvents();
105 }
106
107 @Override
108 public void setIndexComplete() {
109 fCheckpoints.setIndexComplete();
110 }
111
112}
This page took 0.044943 seconds and 5 git commands to generate.