/*******************************************************************************
* Copyright (c) 2009, 2010 Ericsson
- *
+ *
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
* accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
- *
+ *
* Contributors:
* Francois Chouinard - Initial API and implementation
*******************************************************************************/
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;
import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange;
import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
import org.eclipse.linuxtools.tmf.core.trace.ITmfTraceIndexer;
import org.eclipse.linuxtools.tmf.core.trace.TmfContext;
-import org.eclipse.linuxtools.tmf.core.trace.TmfLocation;
+import org.eclipse.linuxtools.tmf.core.trace.TmfLongLocation;
import org.eclipse.linuxtools.tmf.core.trace.TmfTrace;
/**
* <p>
* Dummy test trace. Use in conjunction with TmfEventParserStub.
*/
-@SuppressWarnings("nls")
-public class TmfTraceStub extends TmfTrace<TmfEvent> implements ITmfEventParser<TmfEvent> {
+@SuppressWarnings({"nls","javadoc"})
+public class TmfTraceStub extends TmfTrace implements ITmfEventParser {
// ------------------------------------------------------------------------
// Attributes
// Constructors
// ------------------------------------------------------------------------
- /**
- * @param path
- * @throws FileNotFoundException
- */
public TmfTraceStub() {
super();
setParser(new TmfEventParserStub(this));
* @param cacheSize
* @throws FileNotFoundException
*/
- public TmfTraceStub(final String path, final int cacheSize, final ITmfTraceIndexer<?> indexer) throws TmfTraceException {
+ public TmfTraceStub(final String path, final int cacheSize, final ITmfTraceIndexer indexer) throws TmfTraceException {
this(path, cacheSize, false, null, indexer);
}
* @throws FileNotFoundException
*/
public TmfTraceStub(final String path, final int cacheSize, final boolean waitForCompletion,
- final ITmfEventParser<TmfEvent> parser, final ITmfTraceIndexer<?> indexer) throws TmfTraceException {
+ final ITmfEventParser parser, final ITmfTraceIndexer indexer) throws TmfTraceException {
super(null, TmfEvent.class, path, cacheSize, 0, indexer);
try {
fTrace = new RandomAccessFile(path, "r");
}
@Override
- public void initTrace(final IResource resource, final String path, final Class<TmfEvent> type) throws TmfTraceException {
+ public void initTrace(final IResource resource, final String path, final Class<? extends ITmfEvent> type) throws TmfTraceException {
try {
fTrace = new RandomAccessFile(path, "r");
} catch (FileNotFoundException e) {
}
@Override
- public void initialize(final IResource resource, final String path, final Class<TmfEvent> type) throws TmfTraceException {
+ public void initialize(final IResource resource, final String path, final Class<? extends ITmfEvent> type) throws TmfTraceException {
super.initialize(resource, path, type);
}
// ------------------------------------------------------------------------
@Override
- @SuppressWarnings("unchecked")
- public TmfContext seekEvent(final ITmfLocation<?> location) {
+ public TmfContext seekEvent(final ITmfLocation location) {
try {
fLock.lock();
try {
long loc = 0;
long rank = 0;
if (location != null) {
- loc = ((TmfLocation<Long>) location).getLocation();
+ loc = (Long) location.getLocationData();
rank = ITmfContext.UNKNOWN_RANK;
}
if (loc != fTrace.getFilePointer()) {
} catch (final NullPointerException e) {
e.printStackTrace();
}
+ finally{
+ fLock.unlock();
+ }
} catch (final NullPointerException e) {
e.printStackTrace();
}
- finally{
- fLock.unlock();
- }
return null;
}
fLock.lock();
try {
if (fTrace != null) {
- final ITmfLocation<?> location = new TmfLocation<Long>(Long.valueOf((long) (ratio * fTrace.length())));
+ final ITmfLocation location = new TmfLongLocation(Long.valueOf((long) (ratio * fTrace.length())));
final TmfContext context = seekEvent(location);
context.setRank(ITmfContext.UNKNOWN_RANK);
return context;
}
@Override
- public double getLocationRatio(ITmfLocation<?> location) {
+ public double getLocationRatio(ITmfLocation location) {
fLock.lock();
try {
- if (fTrace != null)
- if (location.getLocation() instanceof Long)
- return (double) ((Long) location.getLocation()) / fTrace.length();
+ if (fTrace != null) {
+ if (location.getLocationData() instanceof Long) {
+ return (double) ((Long) location.getLocationData()) / fTrace.length();
+ }
+ }
} catch (final IOException e) {
e.printStackTrace();
} finally {
}
@Override
- public TmfLocation<Long> getCurrentLocation() {
+ public ITmfLocation getCurrentLocation() {
fLock.lock();
try {
- if (fTrace != null)
- return new TmfLocation<Long>(fTrace.getFilePointer());
+ if (fTrace != null) {
+ return new TmfLongLocation(fTrace.getFilePointer());
+ }
} catch (final IOException e) {
e.printStackTrace();
} finally {
}
@Override
- public TmfEvent parseEvent(final ITmfContext context) {
+ public ITmfEvent parseEvent(final ITmfContext context) {
fLock.lock();
try {
// parseNextEvent will update the context
if (fTrace != null && getParser() != null && context != null) {
- final TmfEvent event = getParser().parseEvent(context.clone());
+ final ITmfEvent event = getParser().parseEvent(context.clone());
return event;
}
} finally {
return null;
}
+ @Override
+ public synchronized void setNbEvents(final long nbEvents) {
+ super.setNbEvents(nbEvents);
+ }
+
@Override
public void setTimeRange(final TmfTimeRange range) {
super.setTimeRange(range);
}
@Override
- public void dispose() {
+ public synchronized void dispose() {
fLock.lock();
try {
if (fTrace != null) {
return fileExists(path);
}
-}
\ No newline at end of file
+}