]> git.cworth.org Git - apitrace/commitdiff
Cleanup the ApiTraceFrame a bit.
authorZack Rusin <zack@kde.org>
Wed, 27 Apr 2011 02:30:25 +0000 (22:30 -0400)
committerZack Rusin <zack@kde.org>
Wed, 27 Apr 2011 02:30:25 +0000 (22:30 -0400)
in preparation for figuring out the amount of data downloaded by the gpu
in a frame.

gui/apitrace.cpp
gui/apitracecall.cpp
gui/apitracecall.h
gui/apitracemodel.cpp
gui/loaderthread.cpp
gui/mainwindow.cpp

index 4c96c717c5643649470d5ff5914ab0090c2533fe..376b73fe3cce24e85af08613e0759aaa6059600c 100644 (file)
@@ -106,7 +106,7 @@ int ApiTrace::numCallsInFrame(int idx) const
 {
     const ApiTraceFrame *frame = frameAt(idx);
     if (frame)
-        return frame->calls.count();
+        return frame->numChildren();
     else
         return 0;
 }
@@ -155,8 +155,8 @@ void ApiTrace::addFrames(const QList<ApiTraceFrame*> &frames)
     int numNewCalls = 0;
     foreach(ApiTraceFrame *frame, frames) {
         frame->setParentTrace(this);
-        numNewCalls += frame->calls.count();
-        m_calls += frame->calls;
+        numNewCalls += frame->numChildren();
+        m_calls += frame->calls();
     }
 
     emit endAddingFrames();
@@ -178,7 +178,7 @@ void ApiTrace::detectFrames()
             currentFrame->number = m_frames.count();
         }
         apiCall->setParentFrame(currentFrame);
-        currentFrame->calls.append(apiCall);
+        currentFrame->addCall(apiCall);
         if (ApiTrace::isCallAFrameMarker(apiCall,
                                          m_frameMarker)) {
             m_frames.append(currentFrame);
index 6a4088cc356d9d2084c48c61cb00166daf5383ab..5901811d15e8af0d52feb0a559ec0cd12378ae9f 100644 (file)
@@ -516,12 +516,13 @@ int ApiTraceCall::numChildren() const
 
 int ApiTraceFrame::numChildren() const
 {
-    return calls.count();
+    return m_calls.count();
 }
 
 ApiTraceFrame::ApiTraceFrame()
     : ApiTraceEvent(ApiTraceEvent::Frame),
-      m_parentTrace(0)
+      m_parentTrace(0),
+      m_binaryDataSize(0)
 {
 }
 
@@ -894,3 +895,28 @@ ApiTrace * ApiTraceCall::parentTrace() const
     return NULL;
 }
 
+void ApiTraceFrame::addCall(ApiTraceCall *call)
+{
+    m_calls.append(call);
+}
+
+QList<ApiTraceCall*> ApiTraceFrame::calls() const
+{
+    return m_calls;
+}
+
+ApiTraceCall * ApiTraceFrame::call(int idx) const
+{
+    return m_calls.value(idx);
+}
+
+int ApiTraceFrame::callIndex(ApiTraceCall *call) const
+{
+    return m_calls.indexOf(call);
+}
+
+bool ApiTraceFrame::isEmpty() const
+{
+    return m_calls.isEmpty();
+}
+
index b5a3604059af5c81201ebe675858237fba733ad6..d8005ca6d3b0b620a6bbea7e7bcfebdd85bca1b1 100644 (file)
@@ -239,15 +239,24 @@ class ApiTraceFrame : public ApiTraceEvent
 public:
     ApiTraceFrame();
     int number;
-    QList<ApiTraceCall*> calls;
+
+    bool isEmpty() const;
 
     ApiTrace *parentTrace() const;
     void setParentTrace(ApiTrace *trace);
 
     int numChildren() const;
     QStaticText staticText() const;
+
+    int callIndex(ApiTraceCall *call) const;
+    ApiTraceCall *call(int idx) const;
+    void addCall(ApiTraceCall *call);
+    QList<ApiTraceCall*> calls() const;
+
 private:
     ApiTrace *m_parentTrace;
+    quint64 m_binaryDataSize;
+    QList<ApiTraceCall*> m_calls;
 };
 Q_DECLARE_METATYPE(ApiTraceFrame*);
 
index debf5c5712698470c27a6ea024b96b4dd2b211ee..7366ae5d025b69f6c428a402b72c3b66b368ab95 100644 (file)
@@ -108,7 +108,7 @@ QModelIndex ApiTraceModel::index(int row, int column,
             return QModelIndex();
         }
         ApiTraceFrame *frame = static_cast<ApiTraceFrame*>(event);
-        ApiTraceCall *call = frame->calls.value(row);
+        ApiTraceCall *call = frame->call(row);
         if (call)
             return createIndex(row, column, call);
         else
@@ -129,7 +129,7 @@ bool ApiTraceModel::hasChildren(const QModelIndex &parent) const
         ApiTraceEvent *event = item(parent);
         if (event && event->type() == ApiTraceEvent::Frame) {
             ApiTraceFrame *frame = static_cast<ApiTraceFrame*>(event);
-            return !frame->calls.isEmpty();
+            return !frame->isEmpty();
         } else
             return false;
     } else {
@@ -163,7 +163,7 @@ int ApiTraceModel::rowCount(const QModelIndex &parent) const
 
     ApiTraceFrame *frame = static_cast<ApiTraceFrame*>(event);
     if (frame)
-        return frame->calls.count();
+        return frame->numChildren();
 
     return 0;
 }
@@ -244,7 +244,7 @@ void ApiTraceModel::stateSetOnEvent(ApiTraceEvent *event)
     if (event->type() == ApiTraceEvent::Call) {
         ApiTraceCall *call = static_cast<ApiTraceCall*>(event);
         ApiTraceFrame *frame = call->parentFrame();
-        int row = frame->calls.indexOf(call);
+        int row = frame->callIndex(call);
         QModelIndex index = createIndex(row, 0, call);
         emit dataChanged(index, index);
     } else if (event->type() == ApiTraceEvent::Frame) {
@@ -271,7 +271,7 @@ QModelIndex ApiTraceModel::indexForCall(ApiTraceCall *call) const
     ApiTraceFrame *frame = call->parentFrame();
     Q_ASSERT(frame);
 
-    int row = frame->calls.indexOf(call);
+    int row = frame->callIndex(call);
     if (row < 0) {
         qDebug() << "Couldn't find call num "<<call->index()<<" inside parent!";
         return QModelIndex();
@@ -295,7 +295,7 @@ void ApiTraceModel::callChanged(ApiTraceCall *call)
         trace->save();
 
     ApiTraceFrame *frame = call->parentFrame();
-    int row = frame->calls.indexOf(call);
+    int row = frame->callIndex(call);
     QModelIndex index = createIndex(row, 0, call);
     emit dataChanged(index, index);
 }
index 57f6ed7bca6c128e5b5b5e22ea4407502a417fc8..de5e3f85ec4d40a3e4144a71b58222a7c9da05c8 100644 (file)
@@ -65,7 +65,7 @@ void LoaderThread::run()
             ApiTraceCall *apiCall =
                 apiCallFromTraceCall(call, helpHash);
             apiCall->setParentFrame(currentFrame);
-            currentFrame->calls.append(apiCall);
+            currentFrame->addCall(apiCall);
             if (ApiTrace::isCallAFrameMarker(apiCall,
                                              m_frameMarker)) {
                 frames.append(currentFrame);
index 64802efc1393caee03f4ea94ffff80fd3169a0a9..441697518e247cbf04a55ab1f76917b847964b4d 100644 (file)
@@ -260,12 +260,12 @@ void MainWindow::replayTrace(bool dumpState)
         } else if (m_selectedEvent->type() == ApiTraceEvent::Frame) {
             ApiTraceFrame *frame =
                 static_cast<ApiTraceFrame*>(m_selectedEvent);
-            if (frame->calls.isEmpty()) {
+            if (frame->isEmpty()) {
                 //XXX i guess we could still get the current state
                 qDebug()<<"tried to get a state for an empty frame";
                 return;
             }
-            index = frame->calls.first()->index();
+            index = frame->calls().first()->index();
         } else {
             qDebug()<<"Unknown event type";
             return;
@@ -825,7 +825,7 @@ void MainWindow::slotSearchNext(const QString &str,
     else {
         Q_ASSERT(event->type() == ApiTraceCall::Frame);
         ApiTraceFrame *frame = static_cast<ApiTraceFrame*>(event);
-        call = frame->calls.value(0);
+        call = frame->call(0);
     }
 
     if (!call) {
@@ -876,7 +876,7 @@ void MainWindow::slotSearchPrev(const QString &str,
     else {
         Q_ASSERT(event->type() == ApiTraceCall::Frame);
         ApiTraceFrame *frame = static_cast<ApiTraceFrame*>(event);
-        call = frame->calls.value(0);
+        call = frame->call(0);
     }
 
     if (!call) {
@@ -982,14 +982,15 @@ void MainWindow::slotSaved()
 void MainWindow::slotGoFrameStart()
 {
     ApiTraceFrame *frame = currentFrame();
-    if (!frame || frame->calls.isEmpty()) {
+    if (!frame || frame->isEmpty()) {
         return;
     }
 
     QList<ApiTraceCall*>::const_iterator itr;
+    QList<ApiTraceCall*> calls = frame->calls();
 
-    itr = frame->calls.constBegin();
-    while (itr != frame->calls.constEnd()) {
+    itr = calls.constBegin();
+    while (itr != calls.constEnd()) {
         ApiTraceCall *call = *itr;
         QModelIndex idx = m_proxyModel->indexForCall(call);
         if (idx.isValid()) {
@@ -1003,12 +1004,13 @@ void MainWindow::slotGoFrameStart()
 void MainWindow::slotGoFrameEnd()
 {
     ApiTraceFrame *frame = currentFrame();
-    if (!frame || frame->calls.isEmpty()) {
+    if (!frame || frame->isEmpty()) {
         return;
     }
     QList<ApiTraceCall*>::const_iterator itr;
+    QList<ApiTraceCall*> calls = frame->calls();
 
-    itr = frame->calls.constEnd();
+    itr = calls.constEnd();
     do {
         --itr;
         ApiTraceCall *call = *itr;
@@ -1017,7 +1019,7 @@ void MainWindow::slotGoFrameEnd()
             m_ui.callView->setCurrentIndex(idx);
             break;
         }
-    } while (itr != frame->calls.constBegin());
+    } while (itr != calls.constBegin());
 }
 
 ApiTraceFrame * MainWindow::currentFrame() const