]> git.cworth.org Git - apitrace/blob - gui/loaderthread.cpp
c8cbe579f3096c2faf123c8918a2f7296aa5be32
[apitrace] / gui / loaderthread.cpp
1 #include "loaderthread.h"
2
3 #include "trace_parser.hpp"
4
5 LoaderThread::LoaderThread(QObject *parent)
6     : QThread(parent)
7 {
8 }
9
10 void LoaderThread::run()
11 {
12     QList<Trace::Call*> traceCalls;
13     Trace::Parser p;
14     if (p.open(m_fileName.toLatin1().constData())) {
15         Trace::Call *call;
16         call = p.parse_call();
17         while (call) {
18             //std::cout << *call;
19             traceCalls.append(call);
20             if (traceCalls.count() >= 1000) {
21                 emit parsedCalls(traceCalls);
22                 traceCalls.clear();
23             }
24             call = p.parse_call();
25         }
26     }
27     if (traceCalls.count()) {
28         emit parsedCalls(traceCalls);
29         traceCalls.clear();
30     }
31 }
32
33 void LoaderThread::loadFile(const QString &fileName)
34 {
35     m_fileName = fileName;
36     start();
37 }
38
39 #include "loaderthread.moc"