Commit | Line | Data |
---|---|---|
6e512b93 ASL |
1 | /******************************************************************************* |
2 | * Copyright (c) 2009 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 | * Alvaro Sanchez-Leon (alvsan09@gmail.com) - Initial API and implementation | |
11 | *******************************************************************************/ | |
12 | package org.eclipse.linuxtools.lttng.ui.model.trange; | |
13 | ||
14 | import java.util.Vector; | |
15 | ||
16 | import org.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model.ITmfTimeAnalysisEntry; | |
17 | ||
18 | public class TimeRangeComposite extends TimeRangeComponent implements | |
19 | ITmfTimeAnalysisEntry { | |
20 | ||
21 | // ======================================================================== | |
22 | // Data | |
23 | // ======================================================================= | |
24 | /** | |
25 | * Type of Composites or Containers | |
26 | * <p> | |
27 | * PROPERTY: Refers to a sub-composite of a RESOURCE or a PROCESS e.g the | |
28 | * cpu which can vary over time and can have time range events associated to | |
29 | * it, and at the same time PROPERTY is associated to a Composite parent | |
30 | * like a PROCESS | |
31 | * </p> | |
32 | * <p> | |
33 | * PROCESS: A composite of time range events representing a Process | |
34 | * </p> | |
35 | * <p> | |
36 | * RESOURCE: A composite of time range events representing a resource i.g. | |
37 | * irq, softIrq, trap, bdev, cpu | |
38 | * </p> | |
39 | * | |
40 | * @author alvaro | |
41 | * | |
42 | */ | |
43 | public static enum CompositeType { | |
44 | UNKNOWN, PROPERTY, PROCESS, RESOURCE | |
45 | } | |
46 | ||
47 | protected final Vector<TimeRangeComponent> ChildEventLeafs = new Vector<TimeRangeComponent>(); | |
48 | protected final Vector<TimeRangeComponent> ChildEventComposites = new Vector<TimeRangeComponent>(); | |
49 | protected Integer id = 0; | |
50 | protected String name; | |
51 | protected String groupName = ""; | |
52 | protected String className = ""; | |
53 | protected CompositeType contType = CompositeType.UNKNOWN; | |
41dc35d0 | 54 | protected long next_good_time = -1; |
63eecb47 FC |
55 | /*Time of first event which trigger the creation of this local resource */ |
56 | protected long insertionTime = -1; | |
6e512b93 ASL |
57 | |
58 | // ======================================================================== | |
59 | // Constructors | |
60 | // ======================================================================= | |
63eecb47 FC |
61 | public TimeRangeComposite(Integer id, Long stime, Long etime, String name, |
62 | CompositeType type, long insertionTime) { | |
6e512b93 ASL |
63 | super(stime, etime, null); |
64 | this.id = id; | |
65 | this.name = name; | |
66 | contType = type; | |
63eecb47 FC |
67 | this.insertionTime = insertionTime; |
68 | // Adjust the first good drawing position to the event time creating this resource | |
69 | next_good_time = insertionTime; | |
6e512b93 ASL |
70 | } |
71 | ||
63eecb47 FC |
72 | public TimeRangeComposite(Integer id, Long stime, Long etime, String name, |
73 | String groupName, String className, CompositeType type, | |
74 | long insertionTime) { | |
75 | this(id, stime, etime, name, type, insertionTime); | |
76 | this.groupName = groupName; | |
77 | this.className = className; | |
6e512b93 ASL |
78 | } |
79 | ||
80 | // ======================================================================== | |
81 | // Methods | |
82 | // ======================================================================= | |
83 | ||
84 | /* | |
85 | * (non-Javadoc) | |
86 | * | |
87 | * @see | |
88 | * org.eclipse.linuxtools.lttng.ui.model.trange.TimeRangeComponent#getName() | |
89 | */ | |
90 | @Override | |
91 | public String getName() { | |
92 | return name; | |
93 | } | |
94 | ||
95 | /** | |
96 | * @param name | |
97 | */ | |
98 | public void setName(String name) { | |
99 | this.name = name; | |
100 | } | |
101 | ||
102 | /* | |
103 | * (non-Javadoc) | |
104 | * | |
105 | * @seeorg.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model. | |
106 | * ITmfTimeAnalysisEntry#getGroupName() | |
107 | */ | |
108 | public String getGroupName() { | |
109 | return groupName; | |
110 | } | |
111 | ||
112 | /** | |
113 | * @param groupName | |
114 | */ | |
115 | public void setGroupName(String groupName) { | |
116 | this.groupName = groupName; | |
117 | } | |
118 | ||
119 | /* | |
120 | * (non-Javadoc) | |
121 | * | |
122 | * @seeorg.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model. | |
123 | * ITmfTimeAnalysisEntry#getId() | |
124 | */ | |
125 | public int getId() { | |
126 | return id; | |
127 | } | |
128 | ||
129 | /** | |
130 | * @param id | |
131 | */ | |
132 | public void setId(int id) { | |
133 | this.id = id; | |
134 | } | |
135 | ||
136 | /** | |
137 | * @return | |
138 | */ | |
139 | public String getClassName() { | |
140 | return className; | |
141 | } | |
142 | ||
143 | /** | |
144 | * @param className | |
145 | */ | |
146 | public void setClassName(String className) { | |
147 | this.className = className; | |
148 | } | |
149 | ||
150 | /* | |
151 | * (non-Javadoc) | |
152 | * | |
153 | * @seeorg.eclipse.linuxtools.tmf.ui.viewers.timeAnalysis.model. | |
154 | * ITmfTimeAnalysisEntry#getTraceEvents() | |
155 | */ | |
156 | @SuppressWarnings("unchecked") | |
157 | public Vector<TimeRangeComponent> getTraceEvents() { | |
158 | return ChildEventLeafs; | |
159 | } | |
160 | ||
161 | /** | |
162 | * @return | |
163 | */ | |
164 | public Vector<TimeRangeComponent> getChildEventComposites() { | |
165 | return ChildEventComposites; | |
166 | } | |
167 | ||
41dc35d0 FC |
168 | /** |
169 | * Represents the time where the next time range can start the drawing i.e. | |
170 | * right after previous time range. | |
171 | * | |
172 | * @return | |
173 | */ | |
174 | public long getNext_good_time() { | |
175 | return next_good_time; | |
176 | } | |
177 | ||
178 | /** | |
179 | * Represents the time where the next time range can start the drawing i.e. | |
180 | * right after previous time range. | |
181 | * | |
182 | * @param nextGoodTime | |
183 | */ | |
184 | public void setNext_good_time(long nextGoodTime) { | |
185 | next_good_time = nextGoodTime; | |
186 | } | |
187 | ||
188 | /** | |
189 | * Reset this resource to the construction state except for | |
190 | */ | |
191 | public void reset() { | |
192 | getChildEventComposites().clear(); | |
193 | getTraceEvents().clear(); | |
63eecb47 FC |
194 | next_good_time = insertionTime; |
195 | } | |
196 | ||
197 | /** | |
198 | * Event Time reflecting the creation of this local resource e.g. at Reception of Fork, etc. | |
199 | * | |
200 | * @return | |
201 | */ | |
202 | public long getInsertionTime() { | |
203 | return insertionTime; | |
41dc35d0 | 204 | } |
6e512b93 | 205 | } |