Added latency analysis feature (bug 331467)
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core / src / org / eclipse / linuxtools / tmf / core / trace / ITmfTrace.java
CommitLineData
8c8bf09f 1/*******************************************************************************
12c155f5 2 * Copyright (c) 2009, 2011 Ericsson
8c8bf09f
ASL
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 * Francois Chouinard - Initial API and implementation
11 *******************************************************************************/
12
6c13869b 13package org.eclipse.linuxtools.tmf.core.trace;
8c8bf09f 14
12c155f5
FC
15import java.io.FileNotFoundException;
16
17import org.eclipse.core.resources.IProject;
6c13869b
FC
18import org.eclipse.linuxtools.tmf.core.component.ITmfComponent;
19import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
20import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange;
21import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
8c8bf09f
ASL
22
23/**
146a887c 24 * <b><u>ITmfTrace</u></b>
8c8bf09f
ASL
25 * <p>
26 */
12c155f5
FC
27public interface ITmfTrace<T extends TmfEvent> extends ITmfComponent {
28
29 // initTrace variants
30 public void initTrace(String path, Class<T> eventType) throws FileNotFoundException;
31
32 public void initTrace(String path, Class<T> eventType, int cacheSize) throws FileNotFoundException;
33
34 public void initTrace(String path, Class<T> eventType, boolean indexTrace) throws FileNotFoundException;
35
36 public void initTrace(String path, Class<T> eventType, int cacheSize, boolean indexTrace) throws FileNotFoundException;
37
96c6806f
PT
38 public void initTrace(String path, Class<T> eventType, int cacheSize, boolean indexTrace, String name) throws FileNotFoundException;
39
12c155f5
FC
40 // Trace type validation
41 public boolean validate(IProject project, String path);
42
43 public ITmfTrace<T> copy();
b0a282fb 44
abfad0aa 45 /**
12c155f5
FC
46 * @return the trace path
47 */
48 public String getPath();
49
50 /**
51 * @return the trace name
52 */
53 @Override
54 public String getName();
55
56 /**
57 * @return the cache size
abfad0aa
FC
58 */
59 public int getCacheSize();
60
12c155f5
FC
61 /**
62 * @return the number of events in the trace
63 */
64 public long getNbEvents();
65
66 /**
67 * Trace time range accesses
68 */
69 public TmfTimeRange getTimeRange();
70
146a887c 71 public TmfTimestamp getStartTime();
12c155f5 72
146a887c 73 public TmfTimestamp getEndTime();
62d1696a 74
12c155f5
FC
75 /**
76 * Positions the trace at the first event with the specified timestamp or index (i.e. the nth event in the trace).
4e3aa37d
FC
77 *
78 * Returns a context which can later be used to read the event.
8c8bf09f 79 *
12c155f5
FC
80 * @param location
81 * @param timestamp
82 * @param rank
8c8bf09f
ASL
83 * @return a context object for subsequent reads
84 */
452ad365 85 public TmfContext seekLocation(ITmfLocation<?> location);
12c155f5 86
9f584e4c 87 public TmfContext seekEvent(TmfTimestamp timestamp);
12c155f5 88
9f584e4c 89 public TmfContext seekEvent(long rank);
146a887c 90
c76c54bb
FC
91 /**
92 * Positions the trace at the event located at the specified ratio.
93 *
94 * Returns a context which can later be used to read the event.
95 *
12c155f5
FC
96 * @param ratio
97 * a floating-point number between 0.0 (beginning) and 1.0 (end)
c76c54bb
FC
98 * @return a context object for subsequent reads
99 */
100 public TmfContext seekLocation(double ratio);
12c155f5 101
c76c54bb
FC
102 /**
103 * Returns the ratio corresponding to the specified location.
104 *
12c155f5
FC
105 * @param location
106 * a trace location
c76c54bb
FC
107 * @return a floating-point number between 0.0 (beginning) and 1.0 (end)
108 */
109 public double getLocationRatio(ITmfLocation<?> location);
12c155f5 110
c76c54bb
FC
111 public ITmfLocation<?> getCurrentLocation();
112
abfad0aa 113 /**
12c155f5
FC
114 * Returns the rank of the first event with the requested timestamp. If none, returns the index of the next event
115 * (if any).
116 *
abfad0aa
FC
117 * @param timestamp
118 * @return
119 */
120 public long getRank(TmfTimestamp timestamp);
12c155f5 121
146a887c 122 /**
12c155f5
FC
123 * Return the event pointed by the supplied context (or null if no event left) and updates the context to the next
124 * event.
8c8bf09f
ASL
125 *
126 * @return the next event in the stream
127 */
9f584e4c 128 public TmfEvent getNextEvent(TmfContext context);
62d1696a 129
e31e01e8 130 /**
12c155f5 131 * Return the event pointed by the supplied context (or null if no event left) and *does not* update the context.
e31e01e8
FC
132 *
133 * @return the next event in the stream
134 */
9f584e4c 135 public TmfEvent parseEvent(TmfContext context);
e31e01e8 136
8c8bf09f 137}
This page took 0.061986 seconds and 5 git commands to generate.