4 #include "trace_api.hpp"
5 #include "apitracecall.h"
15 /* internal class used by the retracer to run
17 class RetraceProcess : public QObject
21 RetraceProcess(QObject *parent=0);
24 QProcess *process() const;
26 QString fileName() const;
27 void setFileName(const QString &name);
29 void setAPI(trace::API api);
31 bool isBenchmarking() const;
32 void setBenchmarking(bool bench);
34 bool isDoubleBuffered() const;
35 void setDoubleBuffered(bool db);
37 void setCaptureAtCallNumber(qlonglong num);
38 qlonglong captureAtCallNumber() const;
40 bool captureState() const;
41 void setCaptureState(bool enable);
43 bool captureThumbnails() const;
44 void setCaptureThumbnails(bool enable);
51 void finished(const QString &output);
52 void error(const QString &msg);
53 void foundState(ApiTraceState *state);
54 void foundThumbnails(const QList<QImage> &thumbnails);
55 void retraceErrors(const QList<ApiTraceError> &errors);
58 void replayFinished(int exitCode, QProcess::ExitStatus exitStatus);
59 void replayError(QProcess::ProcessError err);
65 bool m_doubleBuffered;
67 bool m_captureThumbnails;
68 qlonglong m_captureCall;
71 QJson::Parser *m_jsonParser;
74 class Retracer : public QThread
78 Retracer(QObject *parent=0);
80 QString fileName() const;
81 void setFileName(const QString &name);
83 void setAPI(trace::API api);
85 bool isBenchmarking() const;
86 void setBenchmarking(bool bench);
88 bool isDoubleBuffered() const;
89 void setDoubleBuffered(bool db);
91 void setCaptureAtCallNumber(qlonglong num);
92 qlonglong captureAtCallNumber() const;
94 bool captureState() const;
95 void setCaptureState(bool enable);
97 bool captureThumbnails() const;
98 void setCaptureThumbnails(bool enable);
101 void finished(const QString &output);
102 void foundState(ApiTraceState *state);
103 void foundThumbnails(const QList<QImage> &thumbnails);
104 void error(const QString &msg);
105 void retraceErrors(const QList<ApiTraceError> &errors);
116 bool m_doubleBuffered;
118 bool m_captureThumbnails;
119 qlonglong m_captureCall;
121 QProcessEnvironment m_processEnvironment;