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;
146 bool hasBinaryData() const;
147 int binaryDataIndex() const;
149 mutable QString m_richText;
150 mutable QString m_filterText;
151 mutable QStaticText m_staticText;
152 mutable bool m_hasBinaryData;
153 mutable int m_binaryDataIndex;
155 Q_DECLARE_METATYPE(ApiTraceCall*);
157 class ApiTraceFrame : public ApiTraceEvent
162 QList<ApiTraceCall*> calls;
164 int numChildren() const;
165 QStaticText staticText() const;
167 mutable QStaticText m_staticText;
169 Q_DECLARE_METATYPE(ApiTraceFrame*);