}\r
\r
public static void traceComponent(ITmfComponent component, String msg) {\r
- String message = ("[CMP] Thread=" + Thread.currentThread().getId() + " Cmp=" + component.getName() + " " + msg);\r
+ String message = ("[CMP] Cmp=" + component.getName() + " " + msg);\r
trace(message);\r
}\r
\r
}\r
\r
public static void traceSignal(TmfSignal signal, String msg) {\r
- String message = ("[SIG] Type=" + signal.getClass().getSimpleName() + " Target=" + msg);\r
+ String message = ("[SIG] Sig=" + signal.getClass().getSimpleName() + " Target=" + msg);\r
trace(message);\r
}\r
\r
- public static void traceEvent(ITmfDataProvider<?> provider, ITmfDataRequest<?> request, ITmfEvent data) {\r
- String message = ("[EVT] Provider=" + provider.toString() + ", Req=" + request.getRequestId() + ", Event=" + data\r
- .toString());\r
+ public static void traceEvent(ITmfDataProvider<?> provider, ITmfDataRequest<?> request, ITmfEvent event) {\r
+ String message = ("[EVT] Provider=" + provider.toString() + ", Req=" + request.getRequestId() + ", Event=" + event.getTimestamp());\r
trace(message);\r
}\r
\r
public static void traceError(String msg) {\r
- String message = ("[ERR] Thread=" + Thread.currentThread().getId() + " " + msg);\r
+ String message = ("[ERR] Err=" + msg);\r
trace(message);\r
}\r
\r
public static void traceInfo(String msg) {\r
- String message = ("[INF] Thread=" + Thread.currentThread().getId() + " " + msg);\r
+ String message = ("[INF] " + msg);\r
trace(message);\r
}\r
\r
@Override
public void run() {
- if (Tracer.isRequestTraced())
+ if (Tracer.isRequestTraced()) {
Tracer.traceRequest(request, "is being serviced by " + provider.getName()); //$NON-NLS-1$
+ }
// Extract the generic information
request.start();
if (Tracer.isRequestTraced())
Tracer.traceRequest(request, "read first event"); //$NON-NLS-1$
while (data != null && !isCompleted(request, data, nbRead)) {
- if (fLogData)
- Tracer.traceEvent(provider, request, data);
+// if (fLogData)
+// Tracer.traceEvent(provider, request, data);
if (request.getDataType().isInstance(data)) {
request.handleData(data);
}
protected void queueBackgroundRequest(final ITmfDataRequest<T> request, final int blockSize, final boolean indexing) {
+ final TmfDataProvider<T> provider = this;
+
Thread thread = new Thread() {
@Override
public void run() {
+
+ if (Tracer.isRequestTraced()) {
+ Tracer.traceRequest(request, "is being serviced by " + provider.getName()); //$NON-NLS-1$
+ }
+
request.start();
final Integer[] CHUNK_SIZE = new Integer[1];
return;
}
+ final TmfDataProvider<T> provider = this;
+
Thread thread = new Thread() {
@Override
public void run() {
- request.start();
+
+ if (Tracer.isRequestTraced()) {
+ Tracer.traceRequest(request, "is being serviced by " + provider.getName()); //$NON-NLS-1$
+ }
+
+ request.start();
final Integer[] CHUNK_SIZE = new Integer[1];
CHUNK_SIZE[0] = Math.min(request.getNbRequested(), blockSize + ((indexing) ? 1 : 0));
CtfIterator context = new CtfIterator(this);
if (currentLocation.getLocation() == CtfLocation.INVALID_LOCATION) {
- ((CtfTmfTimestamp)getEndTime()).setType(TimestampType.NANOS);
- currentLocation.setLocation( getEndTime().getValue() + 1);
+ ((CtfTmfTimestamp) getEndTime()).setType(TimestampType.NANOS);
+ currentLocation.setLocation(getEndTime().getValue() + 1);
}
context.setLocation(currentLocation);
context.setRank(ITmfContext.UNKNOWN_RANK);
* The null time range
*/
public static final TmfTimeRange NULL_RANGE =
- new TmfTimeRange(TmfTimestamp.BIG_CRUNCH, TmfTimestamp.BIG_BANG);
+ new TmfTimeRange(TmfTimestamp.BIG_BANG, TmfTimestamp.BIG_BANG);
// ------------------------------------------------------------------------
// Attributes
timestamp = null;
}
+ if (request.getIndex() == 600001) {
+ System.out.println("Aie"); //$NON-NLS-1$
+ }
ITmfContext context = null;
if (timestamp != null) { // Seek by timestamp
context = seekEvent(timestamp);
public boolean isCompatible(ITmfDataRequest<T> request) {
boolean ok = request.getIndex() == getIndex();
- ok &= request.getNbRequested() == getNbRequested();
- ok &= request.getExecType() == getExecType();
- //ok &= request.getDataType() == getDataType();
+ ok &= request.getNbRequested() == getNbRequested();
+ ok &= request.getExecType() == getExecType();
return ok;
}
package org.eclipse.linuxtools.tmf.core.request;
+import org.eclipse.linuxtools.internal.tmf.core.Tracer;
import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;
import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange;
* @param blockSize the number of events per block
*/
public TmfCoalescedEventRequest(Class<T> dataType, TmfTimeRange range, int nbRequested, int blockSize) {
- super(dataType, 0, nbRequested, blockSize, ExecutionType.FOREGROUND);
- fRange = range;
+ this(dataType, range, 0, nbRequested, blockSize, ExecutionType.FOREGROUND);
}
/**
* @param priority the requested execution priority
*/
public TmfCoalescedEventRequest(Class<T> dataType, TmfTimeRange range, int nbRequested, int blockSize, ExecutionType priority) {
- super(dataType, 0, nbRequested, blockSize, priority);
- fRange = range;
+ this(dataType, range, 0, nbRequested, blockSize, priority);
}
/**
public TmfCoalescedEventRequest(Class<T> dataType, TmfTimeRange range, int index, int nbRequested, int blockSize, ExecutionType priority) {
super(dataType, index, nbRequested, blockSize, priority);
fRange = range;
+
+ if (Tracer.isRequestTraced()) {
+ String type = getClass().getName();
+ type = type.substring(type.lastIndexOf('.') + 1);
+ @SuppressWarnings("nls")
+ String message = "CREATED "
+ + (getExecType() == ITmfDataRequest.ExecutionType.BACKGROUND ? "(BG)" : "(FG)")
+ + " Type=" + type + " Index=" + getIndex() + " NbReq=" + getNbRequested()
+ + " Range=" + getRange()
+ + " DataType=" + getDataType().getSimpleName();
+ Tracer.traceRequest(this, message);
+ }
}
// ------------------------------------------------------------------------
@Override
public boolean isCompatible(ITmfDataRequest<T> request) {
- if (request instanceof ITmfEventRequest<?>) {
- boolean ok = getNbRequested() == request.getNbRequested();
- ok &= getIndex() == request.getIndex();
- ok &= getExecType() == request.getExecType();
- //ok &= getDataType() == request.getDataType();
- if (ok) {
- ITmfTimestamp startTime = ((ITmfEventRequest<T>) request).getRange().getStartTime();
- ITmfTimestamp endTime = ((ITmfEventRequest<T>) request).getRange().getEndTime();
- if (!fRange.contains(startTime))
- fRange = new TmfTimeRange(startTime, fRange.getEndTime());
- if (!fRange.contains(endTime))
- fRange = new TmfTimeRange(fRange.getStartTime(), endTime);
- }
- return ok;
- }
- return false;
+ if (request instanceof ITmfEventRequest<?>) {
+ boolean ok = super.isCompatible(request);
+ if (ok) {
+ ITmfTimestamp startTime = ((ITmfEventRequest<T>) request).getRange().getStartTime();
+ ITmfTimestamp endTime = ((ITmfEventRequest<T>) request).getRange().getEndTime();
+ ok &= (startTime.compareTo(endTime) <= 0) && (fRange.getStartTime().compareTo(fRange.getEndTime()) <= 0);
+ if (ok) {
+ if (!fRange.contains(startTime) && fRange.getStartTime().compareTo(startTime) > 0) {
+ fRange = new TmfTimeRange(startTime, fRange.getEndTime());
+ }
+ if (!fRange.contains(endTime) && fRange.getEndTime().compareTo(endTime) < 0) {
+ fRange = new TmfTimeRange(fRange.getStartTime(), endTime);
+ }
+ }
+ }
+ return ok;
+ }
+ return false;
}
// ------------------------------------------------------------------------
@SuppressWarnings("nls")
String message = "CREATED "
+ (getExecType() == ITmfDataRequest.ExecutionType.BACKGROUND ? "(BG)" : "(FG)")
- + " Type=" + type + " Index=" + getIndex() + " NbReq=" + getNbRequested()
- + " Range=" + getRange().toString()
+ + " Type=" + type + " Index=" + getIndex() + " NbReq=" + getNbRequested()
+ + " Range=" + getRange()
+ " DataType=" + getDataType().getSimpleName();
Tracer.traceRequest(this, message);
}
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.linuxtools.internal.tmf.core.Tracer;
import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;
import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange;
}
lastTime = timestamp.clone();
+ if (Tracer.isEventTraced()) {
+ Tracer.traceEvent(fTrace, this, event);
+ }
+
// Update the trace status at regular intervals
if ((getNbRead() % fCheckpointInterval) == 0) {
updateTraceStatus();
* @param timestamp the corresponding timestamp
*/
protected synchronized void updateAttributes(final ITmfContext context, final ITmfTimestamp timestamp) {
- if (fStartTime.compareTo(timestamp, false) > 0) {
+ if (fStartTime.equals(TmfTimestamp.BIG_BANG) || fStartTime.compareTo(timestamp, false) > 0) {
fStartTime = timestamp;
}
- if (fEndTime.compareTo(timestamp, false) < 0) {
+ if (fEndTime.equals(TmfTimestamp.BIG_CRUNCH) || fEndTime.compareTo(timestamp, false) < 0) {
fEndTime = timestamp;
}
if (context.hasValidRank()) {
fTimeRangeHistogram.clear();
fTimeRangeHistogram.setTimeRange(startTime, endTime - startTime);
+
int cacheSize = fCurrentExperiment.getCacheSize();
fTimeRangeRequest = new HistogramRequest(fTimeRangeHistogram.getDataModel(), timeRange, 0, TmfDataRequest.ALL_DATA, cacheSize, ExecutionType.FOREGROUND);
fCurrentExperiment.sendRequest(fTimeRangeRequest);
if (fFullTraceRequest != null && !fFullTraceRequest.isCompleted()) {
fFullTraceRequest.cancel();
}
+// if (fullRange.equals(TmfTimeRange.NULL_RANGE)) {
+// return;
+// }
int cacheSize = fCurrentExperiment.getCacheSize();
fFullTraceRequest = new HistogramRequest(fFullTraceHistogram.getDataModel(), fullRange, (int) fFullTraceHistogram.fDataModel.getNbEvents(),
TmfDataRequest.ALL_DATA, cacheSize, ExecutionType.BACKGROUND);