6 #include "trace_file.hpp"
7 #include "trace_parser.hpp"
13 class TraceLoader : public QObject
17 TraceLoader(QObject *parent=0);
21 ApiTraceCallSignature *signature(unsigned id);
22 void addSignature(unsigned id, ApiTraceCallSignature *signature);
24 ApiTraceEnumSignature *enumSignature(unsigned id);
25 void addEnumSignature(unsigned id, ApiTraceEnumSignature *signature);
28 void loadTrace(const QString &filename);
29 void loadFrame(ApiTraceFrame *frame);
30 void setFrameMarker(ApiTrace::FrameMarker marker);
31 void searchNext(int startFrame,
33 Qt::CaseSensitivity sensitivity);
34 void searchPrev(int startFrame,
36 Qt::CaseSensitivity sensitivity);
37 void findFrameStart(ApiTraceFrame *frame);
38 void findFrameEnd(ApiTraceFrame *frame);
39 void findCallIndex(int index);
42 void startedParsing();
43 void parsed(int percent);
44 void finishedParsing();
46 void framesLoaded(const QList<ApiTraceFrame*> &frames);
47 void frameContentsLoaded(ApiTraceFrame *frame,
48 const QVector<ApiTraceCall*> &calls,
49 quint64 binaryDataSize);
51 void searchResult(ApiTrace::SearchResult result, ApiTraceCall *call);
52 void foundFrameStart(ApiTraceFrame *frame);
53 void foundFrameEnd(ApiTraceFrame *frame);
54 void foundCallIndex(ApiTraceCall *call);
56 struct FrameBookmark {
60 FrameBookmark(const Trace::ParseBookmark &s)
65 Trace::ParseBookmark start;
68 bool isCallAFrameMarker(const Trace::Call *call) const;
69 int numberOfFrames() const;
70 int numberOfCallsInFrame(int frameIdx) const;
76 int callInFrame(int callIdx) const;
77 bool callContains(Trace::Call *call,
79 Qt::CaseSensitivity sensitivity);
80 QVector<ApiTraceCall*> fetchFrameContents(ApiTraceFrame *frame);
81 bool searchCallsBackwards(const QList<Trace::Call*> &calls,
84 Qt::CaseSensitivity sensitivity);
87 Trace::Parser m_parser;
89 ApiTrace::FrameMarker m_frameMarker;
91 typedef QMap<int, FrameBookmark> FrameBookmarks;
92 FrameBookmarks m_frameBookmarks;
93 QList<ApiTraceFrame*> m_createdFrames;
95 QHash<QString, QUrl> m_helpHash;
97 QVector<ApiTraceCallSignature*> m_signatures;
98 QVector<ApiTraceEnumSignature*> m_enumSignatures;