4 #include "apitracecall.h"
13 class ApiTrace : public QObject
18 FrameMarker_SwapBuffers,
29 static bool isCallAFrameMarker(const ApiTraceCall *call,
37 QString fileName() const;
39 FrameMarker frameMarker() const;
41 ApiTraceState defaultState() const;
43 ApiTraceCall *callWithIndex(int idx) const;
45 QList<ApiTraceFrame*> frames() const;
46 ApiTraceFrame *frameAt(int idx) const;
47 int numFrames() const;
48 int numCallsInFrame(int idx) const;
50 void callEdited(ApiTraceCall *call);
51 void callReverted(ApiTraceCall *call);
52 void callError(ApiTraceCall *call);
55 bool needsSaving() const;
57 bool isSaving() const;
59 bool hasErrors() const;
62 void setFileName(const QString &name);
64 void loadFrame(ApiTraceFrame *frame);
65 void findNext(ApiTraceFrame *frame,
68 Qt::CaseSensitivity sensitivity);
69 void findPrev(ApiTraceFrame *frame,
72 Qt::CaseSensitivity sensitivity);
73 void findFrameStart(ApiTraceFrame *frame);
74 void findFrameEnd(ApiTraceFrame *frame);
75 void findCallIndex(int index);
79 void loadTrace(const QString &name);
80 void requestFrame(ApiTraceFrame *frame);
81 void startedLoadingTrace();
82 void loaded(int percent);
83 void finishedLoadingTrace();
85 void framesInvalidated();
86 void changed(ApiTraceCall *call);
89 void findResult(ApiTrace::SearchResult result,
92 void beginAddingFrames(int oldCount, int numAdded);
93 void endAddingFrames();
94 void beginLoadingFrame(ApiTraceFrame *frame, int numAdded);
95 void endLoadingFrame(ApiTraceFrame *frame);
96 void foundFrameStart(ApiTraceFrame *frame);
97 void foundFrameEnd(ApiTraceFrame *frame);
98 void foundCallIndex(ApiTraceCall *call);
101 void loaderSearchNext(int startFrame,
103 Qt::CaseSensitivity sensitivity);
104 void loaderSearchPrev(int startFrame,
106 Qt::CaseSensitivity sensitivity);
107 void loaderFindFrameStart(ApiTraceFrame *frame);
108 void loaderFindFrameEnd(ApiTraceFrame *frame);
109 void loaderFindCallIndex(int index);
112 void addFrames(const QList<ApiTraceFrame*> &frames);
114 void finishedParsing();
115 void loaderFrameLoaded(ApiTraceFrame *frame,
116 const QVector<ApiTraceCall*> &calls,
117 quint64 binaryDataSize);
118 void loaderSearchResult(ApiTrace::SearchResult result,
122 int callInFrame(int callIdx) const;
125 QString m_tempFileName;
127 QList<ApiTraceFrame*> m_frames;
128 QVector<ApiTraceCall*> m_calls;
130 FrameMarker m_frameMarker;
132 TraceLoader *m_loader;
133 QThread *m_loaderThread;
134 SaverThread *m_saver;
136 QSet<ApiTraceCall*> m_editedCalls;
140 QSet<ApiTraceCall*> m_errors;