tmf: Use tabs in statistics view for each traces
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.core / src / org / eclipse / linuxtools / internal / lttng / core / request / LttngSyntEventRequest.java
CommitLineData
5d10d135
ASL
1/*******************************************************************************
2 * Copyright (c) 2009, 2010 Ericsson
0c32e4c5 3 *
5d10d135
ASL
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
0c32e4c5 8 *
5d10d135
ASL
9 * Contributors:
10 * Alvaro Sanchez-Leon (alvsan09@gmail.com) - Initial API and implementation
11 *******************************************************************************/
5945cec9 12package org.eclipse.linuxtools.internal.lttng.core.request;
5d10d135
ASL
13
14import java.util.Vector;
15
5945cec9
FC
16import org.eclipse.linuxtools.internal.lttng.core.event.LttngSyntheticEvent;
17import org.eclipse.linuxtools.internal.lttng.core.state.evProcessor.ITransEventProcessor;
6c13869b 18import org.eclipse.linuxtools.tmf.core.component.TmfEventProvider;
0c32e4c5 19import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
6c13869b
FC
20import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange;
21import org.eclipse.linuxtools.tmf.core.request.TmfEventRequest;
5d10d135
ASL
22
23/**
24 * This class is an extension of Data Request which includes specific references
25 * i.e. a status listener to indicate the start and end of the request
0c32e4c5 26 *
5d10d135 27 * @author alvaro
0c32e4c5 28 *
5d10d135 29 */
0c32e4c5 30public class LttngSyntEventRequest extends TmfEventRequest
5d10d135
ASL
31 implements ILttngSyntEventRequest {
32
33 // ========================================================================
34 // Data
35 // =======================================================================
0c32e4c5 36 private final Vector<IRequestStatusListener> listeners = new Vector<IRequestStatusListener>();
5d10d135
ASL
37 private Long feventCount = 0L;
38 private boolean clearDataInd = false;
39 private TmfTimeRange fExperimentTimeRange = null;
40 private Object fsource = null;
41 private final ITransEventProcessor fprocessor;
0c32e4c5
AM
42 private String fExperimentName = null;
43
5d10d135
ASL
44
45 // ========================================================================
46 // Constructors
47 // =======================================================================
c1c69938
FC
48 /**
49 * @param range
50 * @param offset
51 * @param nbEvents
52 * @param maxBlockSize
53 * @param listener
54 * @param experimentTimeRange
55 * @param processor
56 */
57 public LttngSyntEventRequest(TmfTimeRange range, long offset, int nbEvents,
58 int maxBlockSize, IRequestStatusListener listener,
59 TmfTimeRange experimentTimeRange, ITransEventProcessor processor) {
0c32e4c5 60
9c4eb5f7 61 this(range, offset, nbEvents, maxBlockSize, listener, experimentTimeRange, processor, "", ExecutionType.FOREGROUND); //$NON-NLS-1$
c1c69938 62 }
5d10d135
ASL
63 /**
64 * @param range
65 * @param offset
66 * @param nbEvents
67 * @param maxBlockSize
68 * @param listener
c1c69938
FC
69 * @param experimentTimeRange
70 * @param processor
0c32e4c5 71 * @param experimentName
5d10d135
ASL
72 */
73 public LttngSyntEventRequest(TmfTimeRange range, long offset, int nbEvents,
74 int maxBlockSize, IRequestStatusListener listener,
c1c69938 75 TmfTimeRange experimentTimeRange, ITransEventProcessor processor, String experimentName) {
0c32e4c5 76
c1c69938
FC
77 this(range, offset, nbEvents, maxBlockSize, listener, experimentTimeRange, processor, experimentName, ExecutionType.FOREGROUND);
78 }
79
80 /**
81 * @param range
82 * @param offset
83 * @param nbEvents
84 * @param maxBlockSize
85 * @param listener
86 * @param experimentTimeRange
87 * @param processor
88 * @param experimentName
0c32e4c5 89 * @param execType
c1c69938 90 */
9b635e61
FC
91 public LttngSyntEventRequest(TmfTimeRange range, long offset, int nbEvents,
92 int maxBlockSize, IRequestStatusListener listener,
c1c69938
FC
93 TmfTimeRange experimentTimeRange, ITransEventProcessor processor, String experimentName,
94 ExecutionType execType) {
0c32e4c5 95
a79913eb 96 super(LttngSyntheticEvent.class, range, (int) offset, nbEvents, maxBlockSize, execType);
5d10d135 97 fExperimentTimeRange = experimentTimeRange;
212550ba 98 fExperimentName = experimentName;
5d10d135
ASL
99 addListener(listener);
100
101 fprocessor = processor;
102 }
103
104 /**
105 * @param listener
106 */
107 public void addListener(IRequestStatusListener listener) {
108 if (listener != null && !listeners.contains(listener)) {
109 listeners.add(listener);
110 }
111 }
112
113 /**
114 * @param listener
115 */
c1c69938 116 public void removeListener(IRequestStatusListener listener) {
5d10d135
ASL
117 if (listener != null) {
118 listeners.remove(listener);
119 }
120 }
121
122 // ========================================================================
123 // Methods
124 // =======================================================================
125 /* (non-Javadoc)
126 * @see org.eclipse.linuxtools.lttng.request.ILttngEventRequest#startRequestInd(org.eclipse.linuxtools.tmf.experiment.TmfExperiment, boolean)
127 */
d4011df2 128 @Override
0c32e4c5 129 public void startRequestInd(TmfEventProvider provider) {
5d10d135
ASL
130 // trigger the start to process this request
131 provider.sendRequest(this);
132 }
133
134 /* (non-Javadoc)
135 * @see org.eclipse.linuxtools.lttng.request.ILttngEventRequest#notifyCompletion()
136 */
d4011df2 137 @Override
5d10d135
ASL
138 public void notifyCompletion() {
139 // Notify specific state views
140 for (IRequestStatusListener listener : listeners) {
141 listener.processingCompleted(new RequestCompletedSignal(this));
142 }
143 }
144
145 /* (non-Javadoc)
146 * @see org.eclipse.linuxtools.lttng.request.ILttngEventRequest#notifyStarting()
147 */
d4011df2 148 @Override
5d10d135
ASL
149 public void notifyStarting() {
150 for (IRequestStatusListener listener : listeners) {
151 listener.processingStarted(new RequestStartedSignal(this));
152 }
153 }
154
155 /* (non-Javadoc)
156 * @see org.eclipse.linuxtools.lttng.request.ILttngEventRequest#getExperimentTimeRange()
157 */
d4011df2 158 @Override
5d10d135
ASL
159 public TmfTimeRange getExperimentTimeRange() {
160 return fExperimentTimeRange;
161 }
162
163 /*
164 * (non-Javadoc)
0c32e4c5 165 *
5d10d135
ASL
166 * @see
167 * org.eclipse.linuxtools.lttng.request.ILttngSyntEventRequest#setSynEventCount
168 * (java.lang.Long)
169 */
d4011df2 170 @Override
5d10d135
ASL
171 public synchronized void setSynEventCount(Long numOfEvents) {
172 this.feventCount = numOfEvents;
173 }
174
175 /*
176 * (non-Javadoc)
0c32e4c5 177 *
5d10d135
ASL
178 * @see
179 * org.eclipse.linuxtools.lttng.request.ILttngSyntEventRequest#getEventCount
180 * ()
181 */
d4011df2 182 @Override
550d787e 183 public synchronized Long getSynEventCount() {
5d10d135
ASL
184 return feventCount;
185 }
186
187 /* (non-Javadoc)
188 * @see org.eclipse.linuxtools.lttng.request.ILttngEventRequest#setclearDataInd(boolean)
189 */
d4011df2 190 @Override
5d10d135
ASL
191 public void setclearDataInd(boolean clearAllData) {
192 this.clearDataInd = clearAllData;
193 }
194
195 /* (non-Javadoc)
196 * @see org.eclipse.linuxtools.lttng.request.ILttngEventRequest#isclearDataInd()
197 */
d4011df2 198 @Override
5d10d135
ASL
199 public boolean isclearDataInd() {
200 return clearDataInd;
201 }
202
203 /* (non-Javadoc)
204 * @see org.eclipse.linuxtools.lttng.request.ILttngEventRequest#handleData()
205 */
206 @Override
0c32e4c5 207 public void handleData(ITmfEvent event) {
f9673903 208 super.handleData(event);
5d10d135
ASL
209 }
210
211
212 /*
213 * (non-Javadoc)
0c32e4c5 214 *
5d10d135
ASL
215 * @see org.eclipse.linuxtools.tmf.request.TmfDataRequest#handleCompleted()
216 */
550d787e 217 @Override
5d10d135
ASL
218 public void handleCompleted() {
219 // notify listeners
220 notifyCompletion();
221 super.handleCompleted();
222 }
223
224 /**
225 * @return the source
226 */
d4011df2 227 @Override
5d10d135
ASL
228 public Object getSource() {
229 return fsource;
230 }
231
232 /**
233 * @param source
234 */
d4011df2 235 @Override
5d10d135
ASL
236 public void setSource(Object source) {
237 this.fsource = source;
238 }
239
240 /**
241 * @return the event processor associated to this request
242 */
243 public ITransEventProcessor getProcessor() {
244 return fprocessor;
245 }
c1c69938
FC
246
247 @Override
248 public String getExperimentName() {
249 return fExperimentName;
250 }
0c32e4c5 251
5d10d135 252}
This page took 0.05302 seconds and 5 git commands to generate.