Add copyright header.
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core / src / org / eclipse / linuxtools / tmf / core / request / TmfEventRequest.java
CommitLineData
8c8bf09f
ASL
1/*******************************************************************************
2 * Copyright (c) 2009, 2010 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 * Francois Chouinard - Initial API and implementation
11 *******************************************************************************/
12
6c13869b 13package org.eclipse.linuxtools.tmf.core.request;
8c8bf09f 14
90891c08 15import org.eclipse.linuxtools.internal.tmf.core.Tracer;
72f1e62a 16import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
6c13869b 17import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange;
8c8bf09f
ASL
18
19/**
20 * <b><u>TmfEventRequest</u></b>
21 * <p>
22 * Implement me. Please.
23 */
72f1e62a 24public abstract class TmfEventRequest<T extends ITmfEvent> extends TmfDataRequest<T> implements ITmfEventRequest<T> {
8c8bf09f
ASL
25
26 // ------------------------------------------------------------------------
27 // Attributes
28 // ------------------------------------------------------------------------
29
30 private final TmfTimeRange fRange; // The requested events time range
31
32 // ------------------------------------------------------------------------
33 // Constructors
34 // ------------------------------------------------------------------------
35
36 /**
0d9a6d76
FC
37 * Request all the events of a given type (high priority)
38 * Events are returned in blocks of the default size (DEFAULT_BLOCK_SIZE).
39 *
40 * @param dataType the requested data type
8c8bf09f 41 */
951d134a 42 public TmfEventRequest(Class<T> dataType) {
a4115405 43 this(dataType, TmfTimeRange.ETERNITY, 0, ALL_DATA, DEFAULT_BLOCK_SIZE, ExecutionType.FOREGROUND);
550d787e
FC
44 }
45
0d9a6d76
FC
46 /**
47 * Request all the events of a given type (given priority)
48 * Events are returned in blocks of the default size (DEFAULT_BLOCK_SIZE).
49 *
50 * @param dataType the requested data type
51 * @param priority the requested execution priority
52 */
53 public TmfEventRequest(Class<T> dataType, ExecutionType priority) {
54 this(dataType, TmfTimeRange.ETERNITY, 0, ALL_DATA, DEFAULT_BLOCK_SIZE, priority);
8c8bf09f
ASL
55 }
56
57 /**
0d9a6d76
FC
58 * Request all the events of a given type for the given time range (high priority)
59 * Events are returned in blocks of the default size (DEFAULT_BLOCK_SIZE).
60 *
61 * @param dataType the requested data type
62 * @param range the time range of the requested events
8c8bf09f 63 */
951d134a 64 public TmfEventRequest(Class<T> dataType, TmfTimeRange range) {
a79913eb 65 this(dataType, range, 0, ALL_DATA, DEFAULT_BLOCK_SIZE, ExecutionType.FOREGROUND);
550d787e
FC
66 }
67
0d9a6d76
FC
68 /**
69 * Request all the events of a given type for the given time range (given priority)
70 * Events are returned in blocks of the default size (DEFAULT_BLOCK_SIZE).
71 *
72 * @param dataType the requested data type
73 * @param range the time range of the requested events
74 * @param priority the requested execution priority
75 */
76 public TmfEventRequest(Class<T> dataType, TmfTimeRange range, ExecutionType priority) {
77 this(dataType, range, 0, ALL_DATA, DEFAULT_BLOCK_SIZE, priority);
8c8bf09f
ASL
78 }
79
80 /**
0d9a6d76
FC
81 * Request 'n' events of a given type from the given time range (high priority)
82 * Events are returned in blocks of the default size (DEFAULT_BLOCK_SIZE).
83 *
84 * @param dataType the requested data type
85 * @param range the time range of the requested events
86 * @param nbRequested the number of events requested
8c8bf09f 87 */
951d134a 88 public TmfEventRequest(Class<T> dataType, TmfTimeRange range, int nbRequested) {
a79913eb 89 this(dataType, range, 0, nbRequested, DEFAULT_BLOCK_SIZE, ExecutionType.FOREGROUND);
550d787e
FC
90 }
91
0d9a6d76
FC
92 /**
93 * Request 'n' events of a given type for the given time range (given priority)
94 * Events are returned in blocks of the default size (DEFAULT_BLOCK_SIZE).
95 *
96 * @param dataType the requested data type
97 * @param range the time range of the requested events
98 * @param nbRequested the number of events requested
99 * @param priority the requested execution priority
100 */
101 public TmfEventRequest(Class<T> dataType, TmfTimeRange range, int nbRequested, ExecutionType priority) {
102 this(dataType, range, 0, nbRequested, DEFAULT_BLOCK_SIZE, priority);
8c8bf09f
ASL
103 }
104
105 /**
0d9a6d76
FC
106 * Request 'n' events of a given type for the given time range (high priority).
107 * Events are returned in blocks of the given size.
108 *
109 * @param dataType the requested data type
110 * @param range the time range of the requested events
111 * @param nbRequested the number of events requested
112 * @param blockSize the number of events per block
8c8bf09f 113 */
951d134a 114 public TmfEventRequest(Class<T> dataType, TmfTimeRange range, int nbRequested, int blockSize) {
a79913eb 115 this(dataType, range, 0, nbRequested, blockSize, ExecutionType.FOREGROUND);
550d787e
FC
116 }
117
7e6347b0
FC
118 /**
119 * Request 'n' events of a given type for the given time range (high priority).
120 * Events are returned in blocks of the given size.
121 *
122 * @param dataType the requested data type
123 * @param range the time range of the requested events
124 * @param index the index of the first event to retrieve
125 * @param nbRequested the number of events requested
126 * @param blockSize the number of events per block
127 */
9e0640dc 128 public TmfEventRequest(Class<T> dataType, TmfTimeRange range, long index, int nbRequested, int blockSize) {
7e6347b0
FC
129 this(dataType, range, index, nbRequested, blockSize, ExecutionType.FOREGROUND);
130 }
131
0d9a6d76
FC
132 /**
133 * Request 'n' events of a given type for the given time range (given priority).
134 * Events are returned in blocks of the given size.
135 *
136 * @param dataType the requested data type
137 * @param range the time range of the requested events
138 * @param nbRequested the number of events requested
139 * @param blockSize the number of events per block
140 * @param priority the requested execution priority
141 */
142 public TmfEventRequest(Class<T> dataType, TmfTimeRange range, int nbRequested, int blockSize, ExecutionType priority) {
143 this(dataType, range, 0, nbRequested, blockSize, priority);
a79913eb
FC
144 }
145
0d9a6d76
FC
146 /**
147 * Request 'n' events of a given type for the given time range (given priority).
148 * Events are returned in blocks of the given size.
149 *
150 * @param dataType the requested data type
151 * @param range the time range of the requested events
152 * @param index the index of the first event to retrieve
153 * @param nbRequested the number of events requested
154 * @param blockSize the number of events per block
155 * @param priority the requested execution priority
156 */
9e0640dc 157 public TmfEventRequest(Class<T> dataType, TmfTimeRange range, long index, int nbRequested, int blockSize, ExecutionType priority) {
0d9a6d76 158 super(dataType, index, nbRequested, blockSize, priority);
8c8bf09f 159 fRange = range;
90891c08
FC
160
161 if (Tracer.isRequestTraced()) {
162 String type = getClass().getName();
163 type = type.substring(type.lastIndexOf('.') + 1);
164 @SuppressWarnings("nls")
165 String message = "CREATED "
166 + (getExecType() == ITmfDataRequest.ExecutionType.BACKGROUND ? "(BG)" : "(FG)")
4cf201de
FC
167 + " Type=" + type + " Index=" + getIndex() + " NbReq=" + getNbRequested()
168 + " Range=" + getRange()
90891c08
FC
169 + " DataType=" + getDataType().getSimpleName();
170 Tracer.traceRequest(this, message);
171 }
8c8bf09f
ASL
172 }
173
174 // ------------------------------------------------------------------------
175 // Accessors
176 // ------------------------------------------------------------------------
177
178 /**
179 * @return the requested time range
180 */
d4011df2
FC
181 @Override
182 public TmfTimeRange getRange() {
8c8bf09f
ASL
183 return fRange;
184 }
185
a79913eb
FC
186 // ------------------------------------------------------------------------
187 // Setters
188 // ------------------------------------------------------------------------
189
190 /**
191 * this method is called by the event provider to set the index corresponding
192 * to the time range start time once it is known
0d9a6d76
FC
193 *
194 * @param index the start index
a79913eb
FC
195 */
196 @Override
197 public void setStartIndex(int index) {
198 setIndex(index);
199 }
200
2fb2eb37
FC
201 // ------------------------------------------------------------------------
202 // Object
203 // ------------------------------------------------------------------------
204
205 @Override
206 // All requests have a unique id
207 public int hashCode() {
208 return getRequestId();
209 }
210
211 @Override
212 public boolean equals(Object other) {
213 if (other instanceof TmfEventRequest<?>) {
214 TmfEventRequest<?> request = (TmfEventRequest<?>) other;
215 return super.equals(other) && request.fRange.equals(fRange);
216 }
217 return false;
218 }
219
220 @Override
3b38ea61 221 @SuppressWarnings("nls")
2fb2eb37
FC
222 public String toString() {
223 return "[TmfEventRequest(" + getRequestId() + "," + getDataType().getSimpleName()
a79913eb 224 + "," + getRange() + "," + getIndex() + "," + getNbRequested() + "," + getBlockSize() + ")]";
2fb2eb37
FC
225 }
226
8c8bf09f 227}
This page took 0.053094 seconds and 5 git commands to generate.