X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=org.eclipse.linuxtools.lttng2.kernel.ui%2Fsrc%2Forg%2Feclipse%2Flinuxtools%2Finternal%2Flttng2%2Fkernel%2Fui%2Fviews%2Fcontrolflow%2FControlFlowEntry.java;h=598deee1c145dcbb75b4fec8f1962dcc8f791b68;hb=bcec0116448fab84a99a822ea9912cabb5c983f4;hp=22cede4c87f72ad828df2ffb6e382ef282e09c72;hpb=77fdc5df175d2312a6a92a658ce58712d5936278;p=deliverable%2Ftracecompass.git diff --git a/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowEntry.java b/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowEntry.java index 22cede4c87..598deee1c1 100644 --- a/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowEntry.java +++ b/org.eclipse.linuxtools.lttng2.kernel.ui/src/org/eclipse/linuxtools/internal/lttng2/kernel/ui/views/controlflow/ControlFlowEntry.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2012 Ericsson + * Copyright (c) 2012, 2014 Ericsson, École Polytechnique de Montréal * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which @@ -8,39 +8,28 @@ * * Contributors: * Patrick Tasse - Initial API and implementation + * Geneviève Bastien - Move code to provide base classes for time graph view *******************************************************************************/ package org.eclipse.linuxtools.internal.lttng2.kernel.ui.views.controlflow; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.linuxtools.internal.lttng2.kernel.ui.views.common.EventIterator; -import org.eclipse.linuxtools.lttng2.kernel.core.trace.CtfKernelTrace; -import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeEvent; -import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeGraphEntry; +import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace; +import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.TimeGraphEntry; /** * An entry in the Control Flow view */ -public class ControlFlowEntry implements ITimeGraphEntry { - private final int fThreadQuark; - private final CtfKernelTrace fTrace; - private ControlFlowEntry fParent = null; - private final ArrayList fChildren = new ArrayList(); - private String fName; +public class ControlFlowEntry extends TimeGraphEntry { + + private final ITmfTrace fTrace; private final int fThreadId; private final int fParentThreadId; - private long fStartTime = -1; - private long fEndTime = -1; - private List fEventList = new ArrayList(); - private List fZoomedEventList = null; + private final int fThreadQuark; /** * Constructor * - * @param threadQuark + * @param quark * The attribute quark matching the thread * @param trace * The trace on which we are working @@ -55,96 +44,32 @@ public class ControlFlowEntry implements ITimeGraphEntry { * @param endTime * The end time of this process */ - public ControlFlowEntry(int threadQuark, CtfKernelTrace trace, String execName, int threadId, int parentThreadId, long startTime, long endTime) { - fThreadQuark = threadQuark; + public ControlFlowEntry(int quark, ITmfTrace trace, String execName, int threadId, int parentThreadId, long startTime, long endTime) { + super(execName, startTime, endTime); fTrace = trace; - fName = execName; fThreadId = threadId; fParentThreadId = parentThreadId; - fStartTime = startTime; - fEndTime = endTime; - } - - @Override - public ITimeGraphEntry getParent() { - return fParent; - } - - @Override - public boolean hasChildren() { - return fChildren.size() > 0; - } - - @Override - public List getChildren() { - return fChildren; - } - - @Override - public String getName() { - return fName; - } - - /** - * Update the entry name - * @param execName the updated entry name - */ - public void setName(String execName) { - fName = execName; - } - - @Override - public long getStartTime() { - return fStartTime; - } - - @Override - public long getEndTime() { - return fEndTime; - } - - @Override - public boolean hasTimeEvents() { - return true; - } - - @Override - public Iterator getTimeEventsIterator() { - return new EventIterator(fEventList, fZoomedEventList); - } - - @Override - public Iterator getTimeEventsIterator(long startTime, long stopTime, long visibleDuration) { - return new EventIterator(fEventList, fZoomedEventList, startTime, stopTime); + fThreadQuark = quark; } /** - * Get the quark of the attribute matching this thread's TID + * Get this entry's thread ID * - * @return The quark + * @return The TID */ - public int getThreadQuark() { - return fThreadQuark; + public int getThreadId() { + return fThreadId; } /** - * Get the CTF trace object + * Get the entry's trace * - * @return The trace + * @return the entry's trace */ - public CtfKernelTrace getTrace() { + public ITmfTrace getTrace() { return fTrace; } - /** - * Get this entry's thread ID - * - * @return The TID - */ - public int getThreadId() { - return fThreadId; - } - /** * Get this thread's parent TID * @@ -155,54 +80,16 @@ public class ControlFlowEntry implements ITimeGraphEntry { } /** - * Add an event to this process's timeline - * - * @param event - * The time event - */ - public void addEvent(ITimeEvent event) { - long start = event.getTime(); - long end = start + event.getDuration(); - synchronized (fEventList) { - fEventList.add(event); - if (fStartTime == -1 || start < fStartTime) { - fStartTime = start; - } - if (fEndTime == -1 || end > fEndTime) { - fEndTime = end; - } - } - } - - /** - * Set the general event list of this entry - * - * @param eventList - * The list of time events - */ - public void setEventList(List eventList) { - fEventList = eventList; - } - - /** - * Set the zoomed event list of this entry + * Get the quark of the attribute matching this thread's TID * - * @param eventList - * The list of time events + * @return The quark */ - public void setZoomedEventList(List eventList) { - fZoomedEventList = eventList; + public int getThreadQuark() { + return fThreadQuark; } - /** - * Add a child entry to this one (to show relationships between processes as - * a tree) - * - * @param child - * The child entry - */ - public void addChild(ControlFlowEntry child) { - child.fParent = this; - fChildren.add(child); + @Override + public String toString() { + return getClass().getSimpleName() + '(' + getName() + '[' + fThreadId + "])"; //$NON-NLS-1$ } }