4 #include "apitracecall.h"
13 class ApiTrace : public QObject
18 FrameMarker_SwapBuffers,
24 SearchResult_NotFound,
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);
76 void setCallError(const ApiTraceError &error);
80 void loadTrace(const QString &name);
81 void requestFrame(ApiTraceFrame *frame);
82 void startedLoadingTrace();
83 void loaded(int percent);
84 void finishedLoadingTrace();
86 void framesInvalidated();
87 void changed(ApiTraceCall *call);
90 void findResult(ApiTrace::SearchResult result,
93 void beginAddingFrames(int oldCount, int numAdded);
94 void endAddingFrames();
95 void beginLoadingFrame(ApiTraceFrame *frame, int numAdded);
96 void endLoadingFrame(ApiTraceFrame *frame);
97 void foundFrameStart(ApiTraceFrame *frame);
98 void foundFrameEnd(ApiTraceFrame *frame);
99 void foundCallIndex(ApiTraceCall *call);
102 void loaderSearchNext(int startFrame,
104 Qt::CaseSensitivity sensitivity);
105 void loaderSearchPrev(int startFrame,
107 Qt::CaseSensitivity sensitivity);
108 void loaderFindFrameStart(ApiTraceFrame *frame);
109 void loaderFindFrameEnd(ApiTraceFrame *frame);
110 void loaderFindCallIndex(int index);
113 void addFrames(const QList<ApiTraceFrame*> &frames);
115 void finishedParsing();
116 void loaderFrameLoaded(ApiTraceFrame *frame,
117 const QVector<ApiTraceCall*> &calls,
118 quint64 binaryDataSize);
119 void loaderSearchResult(ApiTrace::SearchResult result,
123 int callInFrame(int callIdx) const;
126 QString m_tempFileName;
128 QList<ApiTraceFrame*> m_frames;
129 QVector<ApiTraceCall*> m_calls;
131 FrameMarker m_frameMarker;
133 TraceLoader *m_loader;
134 QThread *m_loaderThread;
135 SaverThread *m_saver;
137 QSet<ApiTraceCall*> m_editedCalls;
141 QSet<ApiTraceCall*> m_errors;
142 QList< QPair<ApiTraceFrame*, ApiTraceError> > m_queuedErrors;