From 7f944d13b67ebeac4234021db1d9bbb3663b9159 Mon Sep 17 00:00:00 2001 From: Ethereal Date: Sun, 27 Feb 2011 01:27:24 -0700 Subject: [PATCH] Implemented very basic cpuTime artisan. A CPU-usage graph is now properly produced from a log file. Huzzah. --- modules/cpuTime/src/artisan/Viewport.cpp | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/modules/cpuTime/src/artisan/Viewport.cpp b/modules/cpuTime/src/artisan/Viewport.cpp index ae618a0..6fdcb71 100644 --- a/modules/cpuTime/src/artisan/Viewport.cpp +++ b/modules/cpuTime/src/artisan/Viewport.cpp @@ -1,3 +1,5 @@ +#include + #include "Viewport.h" #include "util/MessageSystem.h" @@ -7,12 +9,30 @@ Viewport::Viewport(DataStore *dataStore) : Artisan::GViewport::BasicViewport(dat Message(Debug, "Creating cpuTime Viewport instance . . ."); updateRange(Artisan::GViewport::Rect(1.0, 1.0)); - Artisan::GViewport::Object *object = - new Artisan::GViewport::LineObject( - Artisan::GViewport::Point(0.0, 0.0), - Artisan::GViewport::Point(0.5, 0.7)); + Artisan::GViewport::Object *object = NULL; + + double lastTime = 0.0; + double lastData = 0.0; + + QListIterator > i = m_dataStore->iterator(); + while(i.hasNext()) { + QPair pair = i.next(); + + if(lastTime != 0.0 || lastData != 0.0) { + object = new Artisan::GViewport::LineObject( + Artisan::GViewport::Point(lastTime, lastData), + Artisan::GViewport::Point(pair.first, pair.second)); + + data()->addObject(object); + } + lastTime = pair.first; + lastData = pair.second; + } + + Artisan::GViewport::TreeType::Bound maxBound = data()->tree().bounds(); - data()->addObject(object); + updateRange(Artisan::GViewport::Rect(maxBound.range(0).start(), maxBound.range(0).end(), maxBound.range(1).start(), + maxBound.range(1).end())); } Viewport::~Viewport() { -- 2.11.4.GIT