4 #include "apitracecall.h"
13 class ApiTrace : public QObject
18 FrameMarker_SwapBuffers,
23 static bool isCallAFrameMarker(const ApiTraceCall *call,
31 QString fileName() const;
33 FrameMarker frameMarker() const;
35 ApiTraceState defaultState() const;
37 QVector<ApiTraceCall*> calls() const;
38 ApiTraceCall *callAt(int idx) const;
39 ApiTraceCall *callWithIndex(int idx) const;
42 QList<ApiTraceFrame*> frames() const;
43 ApiTraceFrame *frameAt(int idx) const;
44 int numFrames() const;
45 int numCallsInFrame(int idx) const;
47 void callEdited(ApiTraceCall *call);
48 void callReverted(ApiTraceCall *call);
49 void callError(ApiTraceCall *call);
52 bool needsSaving() const;
54 bool isSaving() const;
56 bool hasErrors() const;
59 void setFileName(const QString &name);
60 void setFrameMarker(FrameMarker marker);
64 void loadTrace(const QString &name);
65 void startedLoadingTrace();
66 void loaded(int percent);
67 void finishedLoadingTrace();
69 void framesInvalidated();
70 void changed(ApiTraceCall *call);
74 void beginAddingFrames(int oldCount, int numAdded);
75 void endAddingFrames();
76 void callsAdded(int oldCount, int numAdded);
79 void addFrames(const QList<ApiTraceFrame*> &frames);
80 void fillFrame(int frameIdx, const QVector<ApiTraceCall*> &calls,
81 quint64 binaryDataSize);
87 QString m_tempFileName;
89 QList<ApiTraceFrame*> m_frames;
90 QVector<ApiTraceCall*> m_calls;
92 FrameMarker m_frameMarker;
94 TraceLoader *m_loader;
95 QThread *m_loaderThread;
98 QSet<ApiTraceCall*> m_editedCalls;
102 QSet<ApiTraceCall*> m_errors;