#include <QObject>
#include <QSet>
-class LoaderThread;
+class TraceLoader;
class SaverThread;
+class QThread;
class ApiTrace : public QObject
{
ApiTraceState defaultState() const;
- ApiTraceCallSignature *signature(unsigned id);
- void addSignature(unsigned id, ApiTraceCallSignature *signature);
-
- ApiTraceEnumSignature *enumSignature(unsigned id);
- void addEnumSignature(unsigned id, ApiTraceEnumSignature *signature);
-
-
QVector<ApiTraceCall*> calls() const;
ApiTraceCall *callAt(int idx) const;
ApiTraceCall *callWithIndex(int idx) const;
void save();
signals:
+ void loadTrace(const QString &name);
void startedLoadingTrace();
+ void loaded(int percent);
void finishedLoadingTrace();
void invalidated();
void framesInvalidated();
private slots:
void addFrames(const QList<ApiTraceFrame*> &frames);
+ void fillFrame(int frameIdx, const QVector<ApiTraceCall*> &calls,
+ quint64 binaryDataSize);
void slotSaved();
private:
void detectFrames();
FrameMarker m_frameMarker;
- LoaderThread *m_loader;
+ TraceLoader *m_loader;
+ QThread *m_loaderThread;
SaverThread *m_saver;
QSet<ApiTraceCall*> m_editedCalls;
bool m_needsSaving;
QSet<ApiTraceCall*> m_errors;
- QVector<ApiTraceCallSignature*> m_signatures;
- QVector<ApiTraceEnumSignature*> m_enumSignatures;
};
#endif