9 #include "trace_model.hpp"
12 class VariantVisitor : public Trace::Visitor
15 virtual void visit(Trace::Null *);
16 virtual void visit(Trace::Bool *node);
17 virtual void visit(Trace::SInt *node);
18 virtual void visit(Trace::UInt *node);
19 virtual void visit(Trace::Float *node);
20 virtual void visit(Trace::String *node);
21 virtual void visit(Trace::Enum *e);
22 virtual void visit(Trace::Bitmask *bitmask);
23 virtual void visit(Trace::Struct *str);
24 virtual void visit(Trace::Array *array);
25 virtual void visit(Trace::Blob *blob);
26 virtual void visit(Trace::Pointer *ptr);
28 QVariant variant() const
40 ApiPointer(int val=0);
42 QString toString() const;
46 Q_DECLARE_METATYPE(ApiPointer);
51 typedef QList<QPair<QString, unsigned long long> > Signature;
53 ApiBitmask(const Trace::Bitmask *bitmask = 0);
55 QString toString() const;
58 void init(const Trace::Bitmask *bitmask);
61 unsigned long long m_value;
63 Q_DECLARE_METATYPE(ApiBitmask);
70 QStringList memberNames;
73 ApiStruct(const Trace::Struct *s = 0);
75 QString toString() const;
78 void init(const Trace::Struct *bitmask);
81 QList<QVariant> m_members;
83 Q_DECLARE_METATYPE(ApiStruct);
88 ApiArray(const Trace::Array *arr = 0);
90 QString toString() const;
93 void init(const Trace::Array *arr);
95 QList<QVariant> m_array;
97 Q_DECLARE_METATYPE(ApiArray);
100 QString apiVariantToString(const QVariant &variant);
114 ApiTraceEvent(Type t);
116 Type type() const { return m_type; }
118 virtual QStaticText staticText() const = 0;
119 virtual int numChildren() const = 0;
121 QVariantMap state() const;
122 void setState(const QVariantMap &state);
128 Q_DECLARE_METATYPE(ApiTraceEvent*);
130 class ApiTraceCall : public ApiTraceEvent
138 QStringList argNames;
139 QVariantList argValues;
140 QVariant returnValue;
141 ApiTraceFrame *parentFrame;
144 QString toHtml() const;
145 QString filterText() const;
146 QStaticText staticText() const;
147 int numChildren() const;
148 bool hasBinaryData() const;
149 int binaryDataIndex() const;
151 mutable QString m_richText;
152 mutable QString m_filterText;
153 mutable QStaticText m_staticText;
154 mutable bool m_hasBinaryData;
155 mutable int m_binaryDataIndex;
157 Q_DECLARE_METATYPE(ApiTraceCall*);
159 class ApiTraceFrame : public ApiTraceEvent
164 QList<ApiTraceCall*> calls;
166 int numChildren() const;
167 QStaticText staticText() const;
169 mutable QStaticText m_staticText;
171 Q_DECLARE_METATYPE(ApiTraceFrame*);