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 findFrameStart(ApiTraceFrame *frame);
31 void findFrameEnd(ApiTraceFrame *frame);
32 void findCallIndex(int index);
33 void search(const ApiTrace::SearchRequest &request);
36 void startedParsing();
37 void parsed(int percent);
38 void finishedParsing();
40 void framesLoaded(const QList<ApiTraceFrame*> &frames);
41 void frameContentsLoaded(ApiTraceFrame *frame,
42 const QVector<ApiTraceCall*> &calls,
43 quint64 binaryDataSize);
45 void searchResult(const ApiTrace::SearchRequest &request,
46 ApiTrace::SearchResult result,
48 void foundFrameStart(ApiTraceFrame *frame);
49 void foundFrameEnd(ApiTraceFrame *frame);
50 void foundCallIndex(ApiTraceCall *call);
52 struct FrameBookmark {
56 FrameBookmark(const trace::ParseBookmark &s)
61 trace::ParseBookmark start;
64 int numberOfFrames() const;
65 int numberOfCallsInFrame(int frameIdx) const;
71 void searchNext(const ApiTrace::SearchRequest &request);
72 void searchPrev(const ApiTrace::SearchRequest &request);
74 int callInFrame(int callIdx) const;
75 bool callContains(trace::Call *call,
77 Qt::CaseSensitivity sensitivity);
78 QVector<ApiTraceCall*> fetchFrameContents(ApiTraceFrame *frame);
79 bool searchCallsBackwards(const QList<trace::Call*> &calls,
81 const ApiTrace::SearchRequest &request);
84 trace::Parser m_parser;
86 typedef QMap<int, FrameBookmark> FrameBookmarks;
87 FrameBookmarks m_frameBookmarks;
88 QList<ApiTraceFrame*> m_createdFrames;
90 QHash<QString, QUrl> m_helpHash;
92 QVector<ApiTraceCallSignature*> m_signatures;
93 QVector<ApiTraceEnumSignature*> m_enumSignatures;