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 QVector<ApiTraceCall*> calls() const;
44 ApiTraceCall *callWithIndex(int idx) const;
47 QList<ApiTraceFrame*> frames() const;
48 ApiTraceFrame *frameAt(int idx) const;
49 int numFrames() const;
50 int numCallsInFrame(int idx) const;
52 void callEdited(ApiTraceCall *call);
53 void callReverted(ApiTraceCall *call);
54 void callError(ApiTraceCall *call);
57 bool needsSaving() const;
59 bool isSaving() const;
61 bool hasErrors() const;
64 void setFileName(const QString &name);
65 void setFrameMarker(FrameMarker marker);
67 void loadFrame(ApiTraceFrame *frame);
68 void findNext(ApiTraceFrame *frame,
71 Qt::CaseSensitivity sensitivity);
72 void findPrev(ApiTraceFrame *frame,
75 Qt::CaseSensitivity sensitivity);
76 void findFrameStart(ApiTraceFrame *frame);
77 void findFrameEnd(ApiTraceFrame *frame);
78 void findCallIndex(int index);
82 void loadTrace(const QString &name);
83 void requestFrame(ApiTraceFrame *frame);
84 void startedLoadingTrace();
85 void loaded(int percent);
86 void finishedLoadingTrace();
88 void framesInvalidated();
89 void changed(ApiTraceCall *call);
92 void findResult(ApiTrace::SearchResult result,
95 void beginAddingFrames(int oldCount, int numAdded);
96 void endAddingFrames();
97 void callsAdded(int oldCount, int numAdded);
98 void beginLoadingFrame(ApiTraceFrame *frame, int numAdded);
99 void endLoadingFrame(ApiTraceFrame *frame);
100 void foundFrameStart(ApiTraceFrame *frame);
101 void foundFrameEnd(ApiTraceFrame *frame);
102 void foundCallIndex(ApiTraceCall *call);
105 void loaderSearchNext(int startFrame,
107 Qt::CaseSensitivity sensitivity);
108 void loaderSearchPrev(int startFrame,
110 Qt::CaseSensitivity sensitivity);
111 void loaderFindFrameStart(ApiTraceFrame *frame);
112 void loaderFindFrameEnd(ApiTraceFrame *frame);
113 void loaderFindCallIndex(int index);
116 void addFrames(const QList<ApiTraceFrame*> &frames);
118 void finishedParsing();
119 void loaderFrameLoaded(ApiTraceFrame *frame,
120 const QVector<ApiTraceCall*> &calls,
121 quint64 binaryDataSize);
122 void loaderSearchResult(ApiTrace::SearchResult result,
127 int callInFrame(int callIdx) const;
130 QString m_tempFileName;
132 QList<ApiTraceFrame*> m_frames;
133 QVector<ApiTraceCall*> m_calls;
135 FrameMarker m_frameMarker;
137 TraceLoader *m_loader;
138 QThread *m_loaderThread;
139 SaverThread *m_saver;
141 QSet<ApiTraceCall*> m_editedCalls;
145 QSet<ApiTraceCall*> m_errors;