Revert "Bug 378402: Implementation of ControlFlow view and Resources view for"
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng2.kernel.ui / src / org / eclipse / linuxtools / internal / lttng2 / kernel / ui / views / controlflow / ControlFlowEntry.java
1 /*******************************************************************************
2 * Copyright (c) 2012 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 * Patrick Tasse - Initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.internal.lttng2.kernel.ui.views.controlflow;
14
15 import java.util.Iterator;
16 import java.util.LinkedList;
17 import java.util.List;
18
19 import org.eclipse.linuxtools.lttng2.kernel.core.trace.CtfKernelTrace;
20 import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeEvent;
21 import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeGraphEntry;
22
23 public class ControlFlowEntry implements ITimeGraphEntry, Comparable<ControlFlowEntry> {
24 private CtfKernelTrace fTrace;
25 private ITimeGraphEntry parent = null;
26 private ITimeGraphEntry[] children = null;
27 private String fName;
28 private int fThreadId;
29 private int fPpid;
30 private long fStartTime = -1;
31 private long fEndTime = -1;
32 List<ITimeEvent> list = new LinkedList<ITimeEvent>();
33
34 public ControlFlowEntry(CtfKernelTrace trace, String execName, int threadId, int ppid, long startTime, long endTime) {
35 fTrace = trace;
36 fName = execName;
37 fThreadId = threadId;
38 fPpid = ppid;
39 fStartTime = startTime;
40 fEndTime = endTime;
41 }
42
43 @Override
44 public ITimeGraphEntry getParent() {
45 return parent;
46 }
47
48 @Override
49 public boolean hasChildren() {
50 return children != null && children.length > 0;
51 }
52
53 @Override
54 public ITimeGraphEntry[] getChildren() {
55 return children;
56 }
57
58 @Override
59 public String getName() {
60 return fName;
61 }
62
63 public int getThreadId() {
64 return fThreadId;
65 }
66
67 public int getPPID() {
68 return fPpid;
69 }
70
71 @Override
72 public long getStartTime() {
73 return fStartTime;
74 }
75
76 @Override
77 public long getStopTime() {
78 return fEndTime;
79 }
80
81 @Override
82 public Iterator<ITimeEvent> getTimeEventsIterator() {
83 return list.iterator();
84 }
85
86 @Override
87 public Iterator<ITimeEvent> getTimeEventsIterator(long startTime, long stopTime, long visibleDuration) {
88 return getTimeEventsIterator();
89 }
90
91 public void addTraceEvent(ITimeEvent event) {
92 long time = event.getTime();
93 list.add(event);
94 if (fStartTime == -1 || time < fStartTime) {
95 fStartTime = time;
96 }
97 if (fEndTime == -1 || time > fEndTime) {
98 fEndTime = time;
99 }
100 }
101
102 @Override
103 public int compareTo(ControlFlowEntry other) {
104 int result = this.fThreadId < other.fThreadId ? -1 : this.fThreadId > other.fThreadId ? 1 : 0;
105 if (result == 0) {
106 result = this.fStartTime < other.fStartTime ? -1 : this.fStartTime > other.fStartTime ? 1 : 0;
107 }
108 return result;
109 }
110
111 }
This page took 0.067624 seconds and 6 git commands to generate.