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 / resources / ResourcesEntry.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.resources;
14
15 import java.util.ArrayList;
16 import java.util.Iterator;
17 import java.util.List;
18
19 import org.eclipse.linuxtools.internal.lttng2.kernel.ui.views.common.EventIterator;
20 import org.eclipse.linuxtools.lttng2.kernel.core.trace.CtfKernelTrace;
21 import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeEvent;
22 import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeGraphEntry;
23
24 public class ResourcesEntry implements ITimeGraphEntry {
25 public static enum Type { NULL, CPU, IRQ, SOFT_IRQ };
26
27 private int fQuark;
28 private CtfKernelTrace fTrace;
29 private ITimeGraphEntry fParent = null;
30 private ITimeGraphEntry[] children = null;
31 private String fName;
32 private Type fType;
33 private int fId;
34 private long fStartTime;
35 private long fEndTime;
36 private List<ITimeEvent> fEventList = new ArrayList<ITimeEvent>();
37 private List<ITimeEvent> fZoomedEventList = null;
38
39 public ResourcesEntry(int quark, CtfKernelTrace trace, Type type, int id) {
40 fQuark = quark;
41 fTrace = trace;
42 fType = type;
43 fId = id;
44 fName = type.toString() + ' ' + Integer.toString(id);
45 }
46
47 @Override
48 public ITimeGraphEntry getParent() {
49 return fParent;
50 }
51
52 @Override
53 public boolean hasChildren() {
54 return children != null && children.length > 0;
55 }
56
57 @Override
58 public ITimeGraphEntry[] getChildren() {
59 return children;
60 }
61
62 @Override
63 public String getName() {
64 return fName;
65 }
66
67 @Override
68 public long getStartTime() {
69 return fStartTime;
70 }
71
72 @Override
73 public long getEndTime() {
74 return fEndTime;
75 }
76
77 @Override
78 public Iterator<ITimeEvent> getTimeEventsIterator() {
79 return new EventIterator(fEventList, fZoomedEventList);
80 }
81
82 @Override
83 public Iterator<ITimeEvent> getTimeEventsIterator(long startTime, long stopTime, long visibleDuration) {
84 return new EventIterator(fEventList, fZoomedEventList, startTime, stopTime);
85 }
86
87 public void setParent(ITimeGraphEntry parent) {
88 fParent = parent;
89 }
90
91 public int getQuark() {
92 return fQuark;
93 }
94
95 public CtfKernelTrace getTrace() {
96 return fTrace;
97 }
98
99 public Type getType() {
100 return fType;
101 }
102
103 public int getId() {
104 return fId;
105 }
106
107 public void setEventList(List<ITimeEvent> eventList) {
108 fEventList = eventList;
109 if (eventList != null && eventList.size() > 0) {
110 fStartTime = eventList.get(0).getTime();
111 ITimeEvent lastEvent = eventList.get(eventList.size() - 1);
112 fEndTime = lastEvent.getTime() + lastEvent.getDuration();
113 }
114 }
115
116 public void setZoomedEventList(List<ITimeEvent> eventList) {
117 fZoomedEventList = eventList;
118 }
119 }
This page took 0.03241 seconds and 5 git commands to generate.