8 #include "trace_model.hpp"
11 class VariantVisitor : public Trace::Visitor
14 virtual void visit(Trace::Null *);
15 virtual void visit(Trace::Bool *node);
16 virtual void visit(Trace::SInt *node);
17 virtual void visit(Trace::UInt *node);
18 virtual void visit(Trace::Float *node);
19 virtual void visit(Trace::String *node);
20 virtual void visit(Trace::Enum *e);
21 virtual void visit(Trace::Bitmask *bitmask);
22 virtual void visit(Trace::Struct *str);
23 virtual void visit(Trace::Array *array);
24 virtual void visit(Trace::Blob *blob);
25 virtual void visit(Trace::Pointer *ptr);
27 QVariant variant() const
39 ApiPointer(int val=0);
41 QString toString() const;
45 Q_DECLARE_METATYPE(ApiPointer);
50 typedef QList<QPair<QString, unsigned long long> > Signature;
52 ApiBitmask(const Trace::Bitmask *bitmask = 0);
54 QString toString() const;
57 void init(const Trace::Bitmask *bitmask);
60 unsigned long long m_value;
62 Q_DECLARE_METATYPE(ApiBitmask);
69 QStringList memberNames;
72 ApiStruct(const Trace::Struct *s = 0);
74 QString toString() const;
77 void init(const Trace::Struct *bitmask);
80 QList<QVariant> m_members;
82 Q_DECLARE_METATYPE(ApiStruct);
87 ApiArray(const Trace::Array *arr = 0);
89 QString toString() const;
92 void init(const Trace::Array *arr);
94 QList<QVariant> m_array;
96 Q_DECLARE_METATYPE(ApiArray);
99 QString apiVariantToString(const QVariant &variant);
113 ApiTraceEvent(Type t);
115 Type type() const { return m_type; }
117 virtual QStaticText staticText() const = 0;
118 virtual int numChildren() const = 0;
123 Q_DECLARE_METATYPE(ApiTraceEvent*);
125 class ApiTraceCall : public ApiTraceEvent
133 QStringList argNames;
134 QVariantList argValues;
135 QVariant returnValue;
136 ApiTraceFrame *parentFrame;
138 QString toHtml() const;
139 QString filterText() const;
140 QStaticText staticText() const;
141 int numChildren() const;
143 mutable QString m_richText;
144 mutable QString m_filterText;
145 mutable QStaticText m_staticText;
147 Q_DECLARE_METATYPE(ApiTraceCall*);
149 class ApiTraceFrame : public ApiTraceEvent
154 QList<ApiTraceCall*> calls;
157 int numChildren() const;
158 QStaticText staticText() const;
160 mutable QStaticText m_staticText;
162 Q_DECLARE_METATYPE(ApiTraceFrame*);