]> git.cworth.org Git - apitrace/blobdiff - gui/traceloader.h
Use skiplist-based FastCallSet within trace::CallSet
[apitrace] / gui / traceloader.h
index e950b0914bf73b0e81671ec1db4d58cb561d7b40..0954078219fba68bd3e188b72d56027cd3b01d7b 100644 (file)
@@ -27,20 +27,15 @@ public:
 public slots:
     void loadTrace(const QString &filename);
     void loadFrame(ApiTraceFrame *frame);
-    void setFrameMarker(ApiTrace::FrameMarker marker);
-    void searchNext(int startFrame,
-                    const QString &str,
-                    Qt::CaseSensitivity sensitivity);
-    void searchPrev(int startFrame,
-                    const QString &str,
-                    Qt::CaseSensitivity sensitivity);
     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);
@@ -48,7 +43,9 @@ signals:
                              const QVector<ApiTraceCall*> &calls,
                              quint64 binaryDataSize);
 
-    void searchResult(ApiTrace::SearchResult result, ApiTraceCall *call);
+    void searchResult(const ApiTrace::SearchRequest &request,
+                      ApiTrace::SearchResult result,
+                      ApiTraceCall *call);
     void foundFrameStart(ApiTraceFrame *frame);
     void foundFrameEnd(ApiTraceFrame *frame);
     void foundCallIndex(ApiTraceCall *call);
@@ -57,35 +54,36 @@ private:
         FrameBookmark()
             : numberOfCalls(0)
         {}
-        FrameBookmark(const Trace::ParseBookmark &s)
+        FrameBookmark(const trace::ParseBookmark &s)
             : start(s),
               numberOfCalls(0)
         {}
 
-        Trace::ParseBookmark start;
+        trace::ParseBookmark start;
         int numberOfCalls;
     };
-    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,
+    bool callContains(trace::Call *call,
                       const QString &str,
                       Qt::CaseSensitivity sensitivity);
      QVector<ApiTraceCall*> fetchFrameContents(ApiTraceFrame *frame);
-     bool searchCallsBackwards(const QList<Trace::Call*> &calls,
+     bool searchCallsBackwards(const QList<trace::Call*> &calls,
                                int frameIdx,
-                               const QString &str,
-                               Qt::CaseSensitivity sensitivity);
+                               const ApiTrace::SearchRequest &request);
 
 private:
-    Trace::Parser m_parser;
-    ApiTrace::FrameMarker m_frameMarker;
+    trace::Parser m_parser;
 
     typedef QMap<int, FrameBookmark> FrameBookmarks;
     FrameBookmarks m_frameBookmarks;