--- /dev/null
+/trace-15316events_nolost_newformat
+/trace-15471events_nolost_newformat
@Override
public void handleCancel() {
redrawAsyncronously();
+ super.handleCancel();
}
/**
@Override
public void handleFailure() {
printCompletedMessage();
+ super.handleFailure();
}
/*
@Override
public void handleCancel() {
printCompletedMessage();
+ super.handleCancel();
}
/*
@Override
public void handleSuccess() {
printCompletedMessage();
+ super.handleSuccess();
}
/**
org.eclipse.linuxtools.tmf/component=false
org.eclipse.linuxtools.tmf/request=false
-org.eclipse.linuxtools.tmf/signals=false
+org.eclipse.linuxtools.tmf/signal=false
org.eclipse.linuxtools.tmf/event=false
+2011-03-10 Francois Chouinard <fchouinard@gmail.com>
+
+ * src/org/eclipse/linuxtools/tmf/.options: Fixed a typo
+ * src/org/eclipse/linuxtools/tmf/signal/TmfSignalManager.java: Improved request tracing
+ * src/org/eclipse/linuxtools/tmf/request/TmfRequestExecutor.java: Improved request tracing
+ * src/org/eclipse/linuxtools/tmf/request/TmfEventRequest.java: Streamlined constructor
+ * src/org/eclipse/linuxtools/tmf/request/TmfDataRequest.java: Improved request tracing
+ * src/org/eclipse/linuxtools/tmf/component/TmfEventProvider.java: Improved request tracing
+ * src/org/eclipse/linuxtools/tmf/component/TmfDataProvider.java: Improved request tracing
+ * src/org/eclipse/linuxtools/tmf/Tracer.java: Improved request tracing
+ * src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java: Fixed request completion call
+
2010-12-13 Bernd Hufmann <bhufmann@gmail.com>
* src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java (armRequest): For data requests, seek only if necessary
import org.eclipse.linuxtools.tmf.component.ITmfDataProvider;\r
import org.eclipse.linuxtools.tmf.event.TmfData;\r
import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;\r
+import org.eclipse.linuxtools.tmf.signal.TmfSignal;\r
\r
@SuppressWarnings("nls")\r
public class Tracer {\r
return REQUEST;\r
}\r
\r
+ public static boolean isSignalTraced() {\r
+ return SIGNAL;\r
+ }\r
+ \r
public static boolean isEventTraced() {\r
return EVENT;\r
}\r
StringBuilder message = new StringBuilder("[");\r
message.append(currentTime / 1000);\r
message.append(".");\r
- message.append(currentTime % 1000);\r
+ message.append(String.format("%1$03d", currentTime % 1000));\r
message.append("] ");\r
message.append(msg);\r
// System.out.println(message);\r
}\r
\r
public static void traceRequest(ITmfDataRequest<?> request, String msg) {\r
- String message = ("[REQ] Thread=" + Thread.currentThread().getId() + " Req=" + request.getRequestId() + \r
- (request.getExecType() == ITmfDataRequest.ExecutionType.BACKGROUND ? "(BG)" : "(FG)") +\r
- ", Type=" + request.getClass().getName() + \r
- ", DataType=" + request.getDataType().getSimpleName() + " " + msg);\r
+ String message = ("[REQ] Req=" + request.getRequestId() + \r
+ (request.getExecType() == ITmfDataRequest.ExecutionType.BACKGROUND ? " (BG)" : " (FG)") +\r
+ " Thread=" + Thread.currentThread().getId() + \r
+ " Type=" + request.getClass().getName() + \r
+ " DataType=" + request.getDataType().getSimpleName() + " " + msg);\r
+ trace(message);\r
+ }\r
+\r
+ public static void traceSignal(TmfSignal signal, String msg) {\r
+ String message = ("[SIG] Type=" + signal.getClass().getSimpleName() + " Target=" + msg);\r
trace(message);\r
}\r
\r
fType, request.getIndex(), request.getNbRequested(),request.getExecType());
coalescedRequest.addRequest(request);
if (Tracer.isRequestTraced()) {
- Tracer.traceRequest(request, "coalesced with " + coalescedRequest.getRequestId()); //$NON-NLS-1$
- Tracer.traceRequest(coalescedRequest, "added " + request.getRequestId()); //$NON-NLS-1$
+ Tracer.traceRequest(request, "coalesced with " + coalescedRequest.getRequestId()); //$NON-NLS-1$
}
fPendingCoalescedRequests.add(coalescedRequest);
}
protected void coalesceDataRequest(ITmfDataRequest<T> request) {
synchronized(fLock) {
- for (TmfCoalescedDataRequest<T> req : fPendingCoalescedRequests) {
- if (req.isCompatible(request)) {
- req.addRequest(request);
+ for (TmfCoalescedDataRequest<T> coalescedRequest : fPendingCoalescedRequests) {
+ if (coalescedRequest.isCompatible(request)) {
+ coalescedRequest.addRequest(request);
if (Tracer.isRequestTraced()) {
- Tracer.traceRequest(request, "coalesced with " + req.getRequestId()); //$NON-NLS-1$
- Tracer.traceRequest(req, "added " + request.getRequestId()); //$NON-NLS-1$
+ Tracer.traceRequest(request, "coalesced with " + coalescedRequest.getRequestId()); //$NON-NLS-1$
}
return;
}
@Override
public void run() {
- if (Tracer.isRequestTraced()) Tracer.traceRequest(request, "started"); //$NON-NLS-1$
+ if (Tracer.isRequestTraced()) Tracer.trace("Request #" + request.getRequestId() + " is being serviced by " + provider.getName()); //$NON-NLS-1$//$NON-NLS-2$
// Extract the generic information
request.start();
try {
// Get the ordered events
- if (Tracer.isRequestTraced()) Tracer.trace("Request #" + request.getRequestId() + " is being serviced by " + provider.getName()); //$NON-NLS-1$//$NON-NLS-2$
T data = getNext(context);
if (Tracer.isRequestTraced()) Tracer.trace("Request #" + request.getRequestId() + " read first event"); //$NON-NLS-1$ //$NON-NLS-2$
while (data != null && !isCompleted(request, data, nbRead))
// To avoid an unnecessary read passed the last data requested
if (++nbRead < nbRequested) {
data = getNext(context);
- if (Tracer.isRequestTraced() && (data == null || data.isNullRef())) {
- Tracer.trace("Request #" + request.getRequestId() + " end of data"); //$NON-NLS-1$//$NON-NLS-2$
- }
}
}
+ if (Tracer.isRequestTraced()) Tracer.trace("Request #" + request.getRequestId() + " finished"); //$NON-NLS-1$//$NON-NLS-2$
if (request.isCancelled()) {
request.cancel();
else {
request.done();
}
-
- if (Tracer.isRequestTraced()) Tracer.traceRequest(request, "completed"); //$NON-NLS-1$
}
catch (Exception e) {
- if (Tracer.isRequestTraced()) Tracer.traceRequest(request, "exception (failed)"); //$NON-NLS-1$
request.fail();
}
}
};
+ if (Tracer.isRequestTraced()) Tracer.traceRequest(request, "queued"); //$NON-NLS-1$
fExecutor.execute(thread);
- if (Tracer.isRequestTraced()) Tracer.traceRequest(request, "queued"); //$NON-NLS-1$
}
// By default, same behavior as a foreground request
coalescedRequest.addRequest(eventRequest);
if (Tracer.isRequestTraced()) {
Tracer.traceRequest(request, "coalesced with " + coalescedRequest.getRequestId()); //$NON-NLS-1$
- Tracer.traceRequest(coalescedRequest, "added " + request.getRequestId()); //$NON-NLS-1$
}
fPendingCoalescedRequests.add(coalescedRequest);
}
// long average = (indexingEnd - indexingStart) / fNbEvents;
// System.out.println(getName() + ": start=" + startTime + ", end=" + lastTime + ", elapsed=" + (indexingEnd * 1.0 - indexingStart) / 1000000000);
// System.out.println(getName() + ": nbEvents=" + fNbEvents + " (" + (average / 1000) + "." + (average % 1000) + " us/evt)");
+ super.handleSuccess();
}
private void updateExperiment() {
*
* @param data Data value to set.
*/
+
/**
* Handle a block of incoming data. This method is called every time
* a block of data becomes available.
@Override
public void handleStarted() {
+ if (Tracer.isRequestTraced()) Tracer.traceRequest(this, "started"); //$NON-NLS-1$
}
/**
@Override
public void handleCompleted() {
if (fRequestFailed) {
- if (Tracer.isRequestTraced()) Tracer.traceRequest(this, "failed"); //$NON-NLS-1$
handleFailure();
}
else if (fRequestCanceled) {
- if (Tracer.isRequestTraced()) Tracer.traceRequest(this, "cancelled"); //$NON-NLS-1$
handleCancel();
}
else {
- if (Tracer.isRequestTraced()) Tracer.traceRequest(this, "succeeded"); //$NON-NLS-1$
handleSuccess();
}
+ if (Tracer.isRequestTraced()) Tracer.traceRequest(this, "completed"); //$NON-NLS-1$
}
@Override
public void handleSuccess() {
+ if (Tracer.isRequestTraced()) Tracer.traceRequest(this, "succeeded"); //$NON-NLS-1$
}
@Override
public void handleFailure() {
+ if (Tracer.isRequestTraced()) Tracer.traceRequest(this, "failed"); //$NON-NLS-1$
}
@Override
public void handleCancel() {
+ if (Tracer.isRequestTraced()) Tracer.traceRequest(this, "cancelled"); //$NON-NLS-1$
}
/**
*/
@Override
public void start() {
- if (Tracer.isRequestTraced()) Tracer.traceRequest(this, "starting"); //$NON-NLS-1$
synchronized(this) {
fRequestRunning = true;
}
handleStarted();
startedLatch.countDown();
- if (Tracer.isRequestTraced()) Tracer.traceRequest(this, "started"); //$NON-NLS-1$
}
/**
*/
@Override
public void done() {
- if (Tracer.isRequestTraced()) Tracer.traceRequest(this, "completing"); //$NON-NLS-1$
synchronized(this) {
if (!fRequestCompleted) {
fRequestRunning = false;
* @param blockSize Size of the largest blocks expected
*/
public TmfEventRequest(Class<T> dataType, TmfTimeRange range, int nbRequested, int blockSize) {
- super(dataType, 0, nbRequested, blockSize, ExecutionType.FOREGROUND);
- fRange = range;
+ this(dataType, range, nbRequested, blockSize, ExecutionType.FOREGROUND);
}
public TmfEventRequest(Class<T> dataType, TmfTimeRange range, int nbRequested, int blockSize, ExecutionType execType) {
public void run() {
try {
requestThread.run();
- if (Tracer.isRequestTraced()) Tracer.trace("[REQ] Request finished"); //$NON-NLS-1$
} finally {
scheduleNext();
}
import java.util.List;
import java.util.Map;
+import org.eclipse.linuxtools.tmf.Tracer;
+
/**
* <b><u>TmfSignalHandler</u></b>
* <p>
signal.setReference(fSignalId);
sendSignal(signal);
sendSignal(new TmfEndSynchSignal(fSignalId));
-/// Tracer.traceSignal(signal);
}
static private void sendSignal(TmfSignal signal) {
+ if (Tracer.isSignalTraced()) Tracer.traceSignal(signal, "(start)"); //$NON-NLS-1$
+
// Build the list of listener methods that are registered for this signal
Class<?> signalClass = signal.getClass();
Map<Object, List<Method>> listeners = new HashMap<Object, List<Method>>();
for (Method method : entry.getValue()) {
try {
method.invoke(entry.getKey(), new Object[] { signal });
+ if (Tracer.isSignalTraced()) {
+ Object key = entry.getKey();
+ String hash = String.format("%1$08X", entry.getKey().hashCode()); //$NON-NLS-1$
+ String target = "[" + hash + "] " + key.getClass().getSimpleName() + ":" + method.getName(); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
+ Tracer.traceSignal(signal, target);
+ }
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
} catch (IllegalAccessException e) {
}
}
}
- }
+
+ if (Tracer.isSignalTraced()) Tracer.traceSignal(signal, "(end)"); //$NON-NLS-1$
+}
}
\ No newline at end of file
--- /dev/null
+/trace-15316events_nolost_newformat
+/trace-15471events_nolost_newformat