X-Git-Url: http://drtracing.org/?a=blobdiff_plain;ds=sidebyside;f=org.eclipse.linuxtools.lttng2.kernel.ui%2Fsrc%2Forg%2Feclipse%2Flinuxtools%2Finternal%2Flttng2%2Fkernel%2Fui%2Fviews%2Fcontrolflow%2FControlFlowEntry.java;h=97b6ef03e753d8bf3be419e1a86aeabc100e7f08;hb=be222f56a3ba9b24e29a53c38a6d43db300bf880;hp=0bf076993dff89074d52e99b588f0d8b1d526c1a;hpb=7e659abc8320765bd553faa51aeb2bef7ee90819;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 0bf076993d..97b6ef03e7 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,214 +1,214 @@ -/******************************************************************************* - * Copyright (c) 2012 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: - * Patrick Tasse - Initial API and implementation - *******************************************************************************/ - -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; - -/** - * 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 final String fName; - private final int fThreadId; - private final int fParentThreadId; - private long fBirthTime = -1; - private long fStartTime = -1; - private long fEndTime = -1; - private List fEventList = new ArrayList(); - private List fZoomedEventList = null; - - /** - * Constructor - * - * @param threadQuark - * The attribute quark matching the thread - * @param trace - * The trace on which we are working - * @param execName - * The exec_name of this entry - * @param threadId - * The TID of the thread - * @param parentThreadId - * the Parent_TID of this thread - * @param birthTime - * The birth time of this entry (this allows separating different - * process that could have the same TID) - * @param startTime - * The start time of this process's lifetime - * @param endTime - * The end time of this process - */ - public ControlFlowEntry(int threadQuark, CtfKernelTrace trace, String execName, int threadId, int parentThreadId, long birthTime, long startTime, long endTime) { - fThreadQuark = threadQuark; - fTrace = trace; - fName = execName; - fThreadId = threadId; - fParentThreadId = parentThreadId; - fBirthTime = birthTime; - fStartTime = startTime; - fEndTime = endTime; - } - - @Override - public ITimeGraphEntry getParent() { - return fParent; - } - - @Override - public boolean hasChildren() { - return fChildren != null && fChildren.size() > 0; - } - - @Override - public ControlFlowEntry[] getChildren() { - return fChildren.toArray(new ControlFlowEntry[0]); - } - - @Override - public String getName() { - return fName; - } - - @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); - } - - /** - * Get the quark of the attribute matching this thread's TID - * - * @return The quark - */ - public int getThreadQuark() { - return fThreadQuark; - } - - /** - * Get the CTF trace object - * - * @return The trace - */ - public CtfKernelTrace getTrace() { - return fTrace; - } - - /** - * Get this entry's thread ID - * - * @return The TID - */ - public int getThreadId() { - return fThreadId; - } - - /** - * Get this thread's parent TID - * - * @return The "PTID" - */ - public int getParentThreadId() { - return fParentThreadId; - } - - /** - * Get the birth time of this entry/process - * - * @return The birth time - */ - public long getBirthTime() { - return fBirthTime; - } - - /** - * 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 - * - * @param eventList - * The list of time events - */ - public void setZoomedEventList(List eventList) { - fZoomedEventList = eventList; - } - - /** - * 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); - } -} +/******************************************************************************* + * Copyright (c) 2012 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: + * Patrick Tasse - Initial API and implementation + *******************************************************************************/ + +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; + +/** + * 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 final String fName; + private final int fThreadId; + private final int fParentThreadId; + private long fBirthTime = -1; + private long fStartTime = -1; + private long fEndTime = -1; + private List fEventList = new ArrayList(); + private List fZoomedEventList = null; + + /** + * Constructor + * + * @param threadQuark + * The attribute quark matching the thread + * @param trace + * The trace on which we are working + * @param execName + * The exec_name of this entry + * @param threadId + * The TID of the thread + * @param parentThreadId + * the Parent_TID of this thread + * @param birthTime + * The birth time of this entry (this allows separating different + * process that could have the same TID) + * @param startTime + * The start time of this process's lifetime + * @param endTime + * The end time of this process + */ + public ControlFlowEntry(int threadQuark, CtfKernelTrace trace, String execName, int threadId, int parentThreadId, long birthTime, long startTime, long endTime) { + fThreadQuark = threadQuark; + fTrace = trace; + fName = execName; + fThreadId = threadId; + fParentThreadId = parentThreadId; + fBirthTime = birthTime; + fStartTime = startTime; + fEndTime = endTime; + } + + @Override + public ITimeGraphEntry getParent() { + return fParent; + } + + @Override + public boolean hasChildren() { + return fChildren != null && fChildren.size() > 0; + } + + @Override + public ControlFlowEntry[] getChildren() { + return fChildren.toArray(new ControlFlowEntry[0]); + } + + @Override + public String getName() { + return fName; + } + + @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); + } + + /** + * Get the quark of the attribute matching this thread's TID + * + * @return The quark + */ + public int getThreadQuark() { + return fThreadQuark; + } + + /** + * Get the CTF trace object + * + * @return The trace + */ + public CtfKernelTrace getTrace() { + return fTrace; + } + + /** + * Get this entry's thread ID + * + * @return The TID + */ + public int getThreadId() { + return fThreadId; + } + + /** + * Get this thread's parent TID + * + * @return The "PTID" + */ + public int getParentThreadId() { + return fParentThreadId; + } + + /** + * Get the birth time of this entry/process + * + * @return The birth time + */ + public long getBirthTime() { + return fBirthTime; + } + + /** + * 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 + * + * @param eventList + * The list of time events + */ + public void setZoomedEventList(List eventList) { + fZoomedEventList = eventList; + } + + /** + * 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); + } +}