]> git.cworth.org Git - apitrace/blobdiff - gui/apitracecall.h
Introduce ApiTrace which encapsulates the data.
[apitrace] / gui / apitracecall.h
index 8b925e8159829818f75a1171de63630c98ba3573..8f38bdaffa2c88490cda7e9ff767733ddf9c1e8e 100644 (file)
@@ -98,23 +98,68 @@ Q_DECLARE_METATYPE(ApiArray);
 
 QString apiVariantToString(const QVariant &variant);
 
-class ApiTraceCall
+class ApiTraceFrame;
+
+class ApiTraceEvent
 {
 public:
+    enum Type {
+        None,
+        Call,
+        Frame
+    };
+public:
+    ApiTraceEvent();
+    ApiTraceEvent(Type t);
+
+    Type type() const { return m_type; }
+
+    virtual QStaticText staticText() const = 0;
+    virtual int numChildren() const = 0;
+
+protected:
+    Type m_type;
+};
+Q_DECLARE_METATYPE(ApiTraceEvent*);
+
+class ApiTraceCall : public ApiTraceEvent
+{
+public:
+    ApiTraceCall();
+    ~ApiTraceCall();
+
+    int index;
     QString name;
     QStringList argNames;
     QVariantList argValues;
     QVariant returnValue;
+    ApiTraceFrame *parentFrame;
 
     QString toHtml() const;
     QString filterText() const;
     QStaticText staticText() const;
+    int numChildren() const;
 private:
     mutable QString m_richText;
     mutable QString m_filterText;
     mutable QStaticText m_staticText;
 };
-Q_DECLARE_METATYPE(ApiTraceCall);
 Q_DECLARE_METATYPE(ApiTraceCall*);
 
+class ApiTraceFrame : public ApiTraceEvent
+{
+public:
+    ApiTraceFrame();
+    int number;
+    QList<ApiTraceCall*> calls;
+
+
+    int numChildren() const;
+    QStaticText staticText() const;
+private:
+    mutable QStaticText m_staticText;
+};
+Q_DECLARE_METATYPE(ApiTraceFrame*);
+
+
 #endif