public slots:
void loadTrace(const QString &filename);
void loadFrame(ApiTraceFrame *frame);
- void setFrameMarker(ApiTrace::FrameMarker marker);
+ void findFrameStart(ApiTraceFrame *frame);
+ void findFrameEnd(ApiTraceFrame *frame);
+ void findCallIndex(int index);
+ void search(const ApiTrace::SearchRequest &request);
signals:
void startedParsing();
void parsed(int percent);
+ void guessedApi(int api);
void finishedParsing();
void framesLoaded(const QList<ApiTraceFrame*> &frames);
- void frameLoaded(ApiTraceFrame *frame);
-
+ void frameContentsLoaded(ApiTraceFrame *frame,
+ const QVector<ApiTraceCall*> &topLevelItems,
+ const QVector<ApiTraceCall*> &calls,
+ quint64 binaryDataSize);
+
+ void searchResult(const ApiTrace::SearchRequest &request,
+ ApiTrace::SearchResult result,
+ ApiTraceCall *call);
+ void foundFrameStart(ApiTraceFrame *frame);
+ void foundFrameEnd(ApiTraceFrame *frame);
+ void foundCallIndex(ApiTraceCall *call);
private:
- struct FrameOffset {
- FrameOffset()
+ struct FrameBookmark {
+ FrameBookmark()
: numberOfCalls(0)
{}
- FrameOffset(const Trace::File::Offset &s)
+ FrameBookmark(const trace::ParseBookmark &s)
: start(s),
numberOfCalls(0)
{}
- Trace::File::Offset start;
+ trace::ParseBookmark start;
int numberOfCalls;
- unsigned callNumber;
};
- bool isCallAFrameMarker(const Trace::Call *call) const;
int numberOfFrames() const;
int numberOfCallsInFrame(int frameIdx) const;
void loadHelpFile();
+ void guessApi(const trace::Call *call);
void scanTrace();
void parseTrace();
+ void searchNext(const ApiTrace::SearchRequest &request);
+ void searchPrev(const ApiTrace::SearchRequest &request);
+
+ int callInFrame(int callIdx) const;
+ bool callContains(trace::Call *call,
+ const QString &str,
+ Qt::CaseSensitivity sensitivity);
+ QVector<ApiTraceCall*> fetchFrameContents(ApiTraceFrame *frame);
+ bool searchCallsBackwards(const QList<trace::Call*> &calls,
+ int frameIdx,
+ const ApiTrace::SearchRequest &request);
+
private:
- Trace::Parser m_parser;
- QString m_fileName;
- ApiTrace::FrameMarker m_frameMarker;
+ trace::Parser m_parser;
- typedef QMap<int, FrameOffset> FrameOffsets;
- FrameOffsets m_frameOffsets;
+ typedef QMap<int, FrameBookmark> FrameBookmarks;
+ FrameBookmarks m_frameBookmarks;
+ QList<ApiTraceFrame*> m_createdFrames;
QHash<QString, QUrl> m_helpHash;