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;
120 QVariantMap state() const;
121 void setState(const QVariantMap &state);
127 Q_DECLARE_METATYPE(ApiTraceEvent*);
129 class ApiTraceCall : public ApiTraceEvent
137 QStringList argNames;
138 QVariantList argValues;
139 QVariant returnValue;
140 ApiTraceFrame *parentFrame;
142 QString toHtml() const;
143 QString filterText() const;
144 QStaticText staticText() const;
145 int numChildren() const;
147 mutable QString m_richText;
148 mutable QString m_filterText;
149 mutable QStaticText m_staticText;
151 Q_DECLARE_METATYPE(ApiTraceCall*);
153 class ApiTraceFrame : public ApiTraceEvent
158 QList<ApiTraceCall*> calls;
160 int numChildren() const;
161 QStaticText staticText() const;
163 mutable QStaticText m_staticText;
165 Q_DECLARE_METATYPE(ApiTraceFrame*);