Revert all luna temporary annotation changes
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / histogram / HistogramRequest.java
1 /*******************************************************************************
2 * Copyright (c) 2009, 2013 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 * William Bourque - Initial API and implementation
11 * Yuriy Vashchuk - Heritage correction.
12 * Francois Chouinard - Cleanup and refactoring
13 * Francois Chouinard - Moved from LTTng to TMF
14 *******************************************************************************/
15
16 package org.eclipse.linuxtools.tmf.ui.views.histogram;
17
18 import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
19 import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest;
20 import org.eclipse.linuxtools.tmf.core.request.TmfEventRequest;
21 import org.eclipse.linuxtools.tmf.core.timestamp.ITmfTimestamp;
22 import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimeRange;
23
24 /**
25 * Class to request events for given time range from a trace to fill a HistogramDataModel and HistogramView.
26 *
27 * @version 1.0
28 * @author Francois Chouinard
29 * <p>
30 */
31 public class HistogramRequest extends TmfEventRequest {
32
33 // ------------------------------------------------------------------------
34 // Attributes
35 // ------------------------------------------------------------------------
36
37 /**
38 * The histogram data model to fill.
39 */
40 protected final HistogramDataModel fHistogram;
41
42 // ------------------------------------------------------------------------
43 // Constructor
44 // ------------------------------------------------------------------------
45
46 /**
47 * Constructor
48 *
49 * @param histogram
50 * The histogram data model
51 * @param range
52 * The time range to request data
53 * @param rank
54 * The index of the first event to retrieve
55 * @param nbEvents
56 * The number of events requested
57 * @param blockSize
58 * The number of events per block
59 * @param execType
60 * The requested execution priority
61 * @since 2.0
62 *
63 */
64 public HistogramRequest(HistogramDataModel histogram, TmfTimeRange range,
65 int rank, int nbEvents, int blockSize,
66 ITmfDataRequest.ExecutionType execType) {
67 super(ITmfEvent.class, range, rank, nbEvents, execType);
68 fHistogram = histogram;
69 }
70
71 // ------------------------------------------------------------------------
72 // TmfEventRequest
73 // ------------------------------------------------------------------------
74
75 /**
76 * Handle the event from the trace by updating the histogram data model.
77 *
78 * @param event a event from the trace
79 * @see org.eclipse.linuxtools.tmf.core.request.TmfDataRequest#handleData(org.eclipse.linuxtools.tmf.core.event.ITmfEvent)
80 */
81 @Override
82 public void handleData(ITmfEvent event) {
83 super.handleData(event);
84 if (event != null) {
85 long timestamp = event.getTimestamp().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue();
86 fHistogram.countEvent(getNbRead(), timestamp);
87 }
88 }
89
90 /**
91 * Complete the request. It also notifies the histogram model about the completion.
92 *
93 * @see org.eclipse.linuxtools.tmf.core.request.TmfDataRequest#handleCompleted()
94 */
95 @Override
96 public void handleCompleted() {
97 fHistogram.complete();
98 super.handleCompleted();
99 }
100 }
This page took 0.032434 seconds and 5 git commands to generate.