TMF: Consolidate some view code into the AbstractTimeGraphView
[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, 2013 Ericsson, École Polytechnique de Montréal
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 * Geneviève Bastien - Move code to provide base classes for time graph view
12 *******************************************************************************/
13
14 package org.eclipse.linuxtools.internal.lttng2.kernel.ui.views.resources;
15
16 import org.eclipse.linuxtools.lttng2.kernel.core.trace.LttngKernelTrace;
17 import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.TimeGraphEntry;
18
19 /**
20 * An entry, or row, in the resource view
21 *
22 * @author Patrick Tasse
23 */
24 public class ResourcesEntry extends TimeGraphEntry {
25
26 /** Type of resource */
27 public static enum Type {
28 /** Null resources (filler rows, etc.) */
29 NULL,
30 /** Entries for CPUs */
31 CPU,
32 /** Entries for IRQs */
33 IRQ,
34 /** Entries for Soft IRQ */
35 SOFT_IRQ
36 }
37
38 private final int fId;
39 private final Type fType;
40 private final int fQuark;
41
42 /**
43 * Constructor
44 *
45 * @param quark
46 * The attribute quark matching the entry
47 * @param trace
48 * The trace on which we are working
49 * @param name
50 * The exec_name of this entry
51 * @param startTime
52 * The start time of this entry lifetime
53 * @param endTime
54 * The end time of this entry
55 * @param type
56 * The type of this entry
57 * @param id
58 * The id of this entry
59 */
60 public ResourcesEntry(int quark, LttngKernelTrace trace, String name, long startTime, long endTime, Type type, int id) {
61 super(quark, trace, name, startTime, endTime);
62 fId = id;
63 fType = type;
64 fQuark = quark;
65 }
66
67 /**
68 * Constructor
69 *
70 * @param trace
71 * The trace on which we are working
72 * @param name
73 * The exec_name of this entry
74 * @param startTime
75 * The start time of this entry lifetime
76 * @param endTime
77 * The end time of this entry
78 * @param id
79 * The id of this entry
80 */
81 public ResourcesEntry(LttngKernelTrace trace, String name, long startTime, long endTime, int id) {
82 this(-1, trace, name, startTime, endTime, Type.NULL, id);
83 }
84
85 /**
86 * Constructor
87 *
88 * @param quark
89 * The attribute quark matching the entry
90 * @param trace
91 * The trace on which we are working
92 * @param startTime
93 * The start time of this entry lifetime
94 * @param endTime
95 * The end time of this entry
96 * @param type
97 * The type of this entry
98 * @param id
99 * The id of this entry
100 */
101 public ResourcesEntry(int quark, LttngKernelTrace trace, long startTime, long endTime, Type type, int id) {
102 this(quark, trace, type.toString() + " " + id, startTime, endTime, type, id); //$NON-NLS-1$
103 }
104
105 /**
106 * Get the entry's id
107 *
108 * @return the entry's id
109 */
110 public int getId() {
111 return fId;
112 }
113
114 @Override
115 public LttngKernelTrace getTrace() {
116 return (LttngKernelTrace) super.getTrace();
117 }
118
119 /**
120 * Get the entry Type of this entry. Uses the inner Type enum.
121 *
122 * @return The entry type
123 */
124 public Type getType() {
125 return fType;
126 }
127
128 /**
129 * Retrieve the attribute quark that's represented by this entry.
130 *
131 * @return The integer quark The attribute quark matching the entry
132 */
133 public int getQuark() {
134 return fQuark;
135 }
136
137 @Override
138 public boolean hasTimeEvents() {
139 if (fType == Type.NULL) {
140 return false;
141 }
142 return true;
143 }
144
145 /**
146 * Add a child to this entry of type ResourcesEntry
147 *
148 * @param entry
149 * The entry to add
150 */
151 public void addChild(ResourcesEntry entry) {
152 int index;
153 for (index = 0; index < getChildren().size(); index++) {
154 ResourcesEntry other = (ResourcesEntry) getChildren().get(index);
155 if (entry.getType().compareTo(other.getType()) < 0) {
156 break;
157 } else if (entry.getType().equals(other.getType())) {
158 if (entry.getId() < other.getId()) {
159 break;
160 }
161 }
162 }
163
164 entry.setParent(this);
165 getChildren().add(index, entry);
166 }
167
168 }
This page took 0.033772 seconds and 5 git commands to generate.