Re-structure LTTng sub-project as per the Linux Tools guidelines
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.ui.tests / stubs / org / eclipse / linuxtools / lttng / stubs / LTTngTraceStub.java
1 /*******************************************************************************
2 * Copyright (c) 2009 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 * Francois Chouinard (fchouinard@gmail.com) - Initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.lttng.stubs;
14
15 import java.io.FileNotFoundException;
16 import java.io.IOException;
17 import java.io.RandomAccessFile;
18
19 import org.eclipse.linuxtools.lttng.core.event.LttngEvent;
20 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
21 import org.eclipse.linuxtools.tmf.core.parser.ITmfEventParser;
22 import org.eclipse.linuxtools.tmf.core.trace.ITmfLocation;
23 import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
24 import org.eclipse.linuxtools.tmf.core.trace.TmfContext;
25 import org.eclipse.linuxtools.tmf.core.trace.TmfLocation;
26 import org.eclipse.linuxtools.tmf.core.trace.TmfTrace;
27
28 /**
29 * <b><u>LTTngTraceStub</u></b>
30 * <p>
31 * Dummy test trace. Use in conjunction with LTTngEventParserStub.
32 */
33 @SuppressWarnings("nls")
34 public class LTTngTraceStub extends TmfTrace<LttngEvent> {
35
36 // ========================================================================
37 // Attributes
38 // ========================================================================
39
40 // The actual stream
41 private final RandomAccessFile fTrace;
42
43 // The associated event parser
44 private final ITmfEventParser fParser;
45
46 // ========================================================================
47 // Constructors
48 // ========================================================================
49
50 /**
51 * @param filename
52 * @param parser
53 * @throws FileNotFoundException
54 */
55 public LTTngTraceStub(String filename) throws FileNotFoundException {
56 this(filename, DEFAULT_INDEX_PAGE_SIZE);
57 }
58
59 /**
60 * @param filename
61 * @param parser
62 * @param cacheSize
63 * @throws FileNotFoundException
64 */
65 public LTTngTraceStub(String filename, int cacheSize) throws FileNotFoundException {
66 super(filename, LttngEvent.class, filename, cacheSize);
67 fTrace = new RandomAccessFile(filename, "r");
68 fParser = new LTTngEventParserStub();
69 // indexTrace(true);
70 }
71
72 @Override
73 public ITmfTrace<LttngEvent> copy() {
74 ITmfTrace<LttngEvent> returnedValue = null;
75 try {
76 returnedValue = new LTTngTraceStub(this.getName());
77 }
78 catch (FileNotFoundException e) {
79 e.printStackTrace();
80 }
81 return returnedValue;
82 }
83
84 // ========================================================================
85 // Accessors
86 // ========================================================================
87
88 public RandomAccessFile getStream() {
89 return fTrace;
90 }
91
92 // ========================================================================
93 // Operators
94 // ========================================================================
95
96 /* (non-Javadoc)
97 * @see org.eclipse.linuxtools.tmf.eventlog.ITmfStreamLocator#seekLocation(java.lang.Object)
98 */
99 @Override
100 @SuppressWarnings("unchecked")
101 public TmfContext seekLocation(ITmfLocation<?> location) {
102 TmfContext context = null;
103 try {
104 synchronized(fTrace) {
105 fTrace.seek((location != null) ? ((TmfLocation<Long>) location).getLocation() : 0);
106 context = new TmfContext(getCurrentLocation(), 0);
107 // TmfTraceContext context2 = new TmfTraceContext(getCurrentLocation(), 0);
108 // TmfEvent event = parseEvent(context2);
109 // context.setTimestamp(event.getTimestamp());
110 }
111 } catch (IOException e) {
112 // TODO Auto-generated catch block
113 e.printStackTrace();
114 }
115 return context;
116 }
117
118 @Override
119 public TmfContext seekLocation(double ratio) {
120 // TODO Auto-generated method stub
121 return null;
122 }
123
124 @Override
125 public double getLocationRatio(ITmfLocation<?> location) {
126 // TODO Auto-generated method stub
127 return 0;
128 }
129
130 /* (non-Javadoc)
131 * @see org.eclipse.linuxtools.tmf.eventlog.ITmfStreamLocator#getCurrentLocation()
132 */
133 @Override
134 public ITmfLocation<?> getCurrentLocation() {
135 try {
136 return new TmfLocation<Long>(fTrace.getFilePointer());
137 } catch (IOException e) {
138 // TODO Auto-generated catch block
139 e.printStackTrace();
140 }
141 return null;
142 }
143
144 /* (non-Javadoc)
145 * @see org.eclipse.linuxtools.tmf.trace.ITmfTrace#parseEvent()
146 */
147 @Override
148 public TmfEvent parseEvent(TmfContext context) {
149 try {
150 // paserNextEvent updates the context
151 TmfEvent event = fParser.parseNextEvent(this, context);
152 // if (event != null) {
153 // context.setTimestamp(event.getTimestamp());
154 // }
155 return event;
156 }
157 catch (IOException e) {
158 e.printStackTrace();
159 }
160 return null;
161 }
162
163 /* (non-Javadoc)
164 * @see java.lang.Object#toString()
165 */
166 @Override
167 public String toString() {
168 return "[LTTngTraceStub]";
169 }
170
171 // // ========================================================================
172 // // Helper functions
173 // // ========================================================================
174 //
175 // /* (non-Javadoc)
176 // * @see org.eclipse.linuxtools.tmf.eventlog.ITmfEventStream#getAttributes()
177 // */
178 // public Map<String, Object> getAttributes() {
179 // // TODO Auto-generated method stub
180 // return null;
181 // }
182
183 }
This page took 0.042798 seconds and 6 git commands to generate.