import java.util.Set;
import org.eclipse.tracecompass.ctf.core.CTFException;
-import org.eclipse.tracecompass.ctf.core.event.EventDefinition;
import org.eclipse.tracecompass.ctf.core.event.IEventDeclaration;
+import org.eclipse.tracecompass.ctf.core.event.IEventDefinition;
import org.eclipse.tracecompass.internal.ctf.core.Activator;
import org.eclipse.tracecompass.internal.ctf.core.trace.StreamInputReaderTimestampComparator;
/*
* For each stream.
*/
- for (CTFStream stream : fTrace.getStreams()) {
+ for (ICTFStream stream : fTrace.getStreams()) {
Set<CTFStreamInput> streamInputs = stream.getStreamInputs();
/*
*/
public void update() throws CTFException {
Set<CTFStreamInputReader> readers = new HashSet<>();
- for (CTFStream stream : fTrace.getStreams()) {
+ for (ICTFStream stream : fTrace.getStreams()) {
Set<CTFStreamInput> streamInputs = stream.getStreamInputs();
for (CTFStreamInput streamInput : streamInputs) {
/*
- * Create a reader.
+ * Create a reader to check if it already exists in the list. If it doesn't, add it.
*/
- CTFStreamInputReader streamInputReader = new CTFStreamInputReader(checkNotNull(streamInput));
-
-
- /*
- * Add it to the group.
- */
- if (!fStreamInputReaders.contains(streamInputReader)) {
- streamInputReader.readNextEvent();
- fStreamInputReaders.add(streamInputReader);
- readers.add(streamInputReader);
+ try (CTFStreamInputReader streamInputReader = new CTFStreamInputReader(checkNotNull(streamInput))) {
+ if (!fStreamInputReaders.contains(streamInputReader)) {
+ CTFStreamInputReader streamInputReaderToAdd = new CTFStreamInputReader(checkNotNull(streamInput));
+ streamInputReaderToAdd.readNextEvent();
+ fStreamInputReaders.add(streamInputReaderToAdd);
+ readers.add(streamInputReaderToAdd);
+ }
+ } catch (IOException e) {
+ Activator.logError(e.getMessage(), e);
}
}
}
*
* @return An event definition, or null of the trace reader reached the end
* of the trace.
+ * @since 2.0
*/
- public EventDefinition getCurrentEventDef() {
+ public IEventDefinition getCurrentEventDef() {
CTFStreamInputReader top = getTopStream();
return (top != null) ? top.getCurrentEvent() : null;
}
* We're in OK, there's a guaranteed top#getCurrentEvent() unless another
* thread does something bad.
*/
- EventDefinition currentEvent = checkNotNull(top.getCurrentEvent());
+ IEventDefinition currentEvent = checkNotNull(top.getCurrentEvent());
final long topEnd = fTrace.timestampCyclesToNanos(currentEvent.getTimestamp());
setEndTime(Math.max(topEnd, getEndTime()));
fEventCountPerTraceFile[top.getName()]++;