1 /* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 #include "thread_window/GeneralPage.h" 7 8 #include <stdio.h> 9 10 11 ThreadWindow::GeneralPage::GeneralPage() 12 : 13 AbstractGeneralPage(), 14 fModel(NULL), 15 fThread(NULL), 16 fThreadNameView(NULL), 17 fThreadIDView(NULL), 18 fTeamView(NULL), 19 fRunTimeView(NULL), 20 fWaitTimeView(NULL), 21 fLatencyView(NULL), 22 fPreemptionView(NULL), 23 fUnspecifiedTimeView(NULL) 24 { 25 fThreadNameView = AddDataView("Name:"); 26 fThreadIDView = AddDataView("ID:"); 27 fTeamView = AddDataView("Team:"); 28 fRunTimeView = AddDataView("Run Time:"); 29 fWaitTimeView = AddDataView("Wait Time:"); 30 fLatencyView = AddDataView("Latencies:"); 31 fPreemptionView = AddDataView("Preemptions:"); 32 fUnspecifiedTimeView = AddDataView("Unspecified Time:"); 33 } 34 35 36 ThreadWindow::GeneralPage::~GeneralPage() 37 { 38 } 39 40 41 void 42 ThreadWindow::GeneralPage::SetModel(Model* model, Model::Thread* thread) 43 { 44 if (model == fModel && thread == fThread) 45 return; 46 47 fModel = model; 48 fThread = thread; 49 50 if (fThread != NULL) { 51 // name 52 fThreadNameView->SetText(fThread->Name()); 53 54 // ID 55 char buffer[128]; 56 snprintf(buffer, sizeof(buffer), "%ld", fThread->ID()); 57 fThreadIDView->SetText(buffer); 58 59 // team 60 fTeamView->SetText(thread->GetTeam()->Name()); 61 62 // run time 63 snprintf(buffer, sizeof(buffer), "%lld μs (%lld)", 64 fThread->TotalRunTime(), fThread->Runs()); 65 fRunTimeView->SetText(buffer); 66 67 // wait time 68 snprintf(buffer, sizeof(buffer), "%lld μs (%lld)", 69 fThread->TotalWaitTime(), fThread->Waits()); 70 fWaitTimeView->SetText(buffer); 71 72 // latencies 73 snprintf(buffer, sizeof(buffer), "%lld μs (%lld)", 74 fThread->TotalLatency(), fThread->Latencies()); 75 fLatencyView->SetText(buffer); 76 77 // preemptions 78 snprintf(buffer, sizeof(buffer), "%lld μs (%lld)", 79 fThread->TotalRerunTime(), fThread->Preemptions()); 80 fPreemptionView->SetText(buffer); 81 82 // unspecified time 83 snprintf(buffer, sizeof(buffer), "%lld μs", 84 fThread->UnspecifiedWaitTime()); 85 fUnspecifiedTimeView->SetText(buffer); 86 } else { 87 fThreadNameView->SetText(""); 88 fThreadIDView->SetText(""); 89 fTeamView->SetText(""); 90 fRunTimeView->SetText(""); 91 fWaitTimeView->SetText(""); 92 fLatencyView->SetText(""); 93 fPreemptionView->SetText(""); 94 fUnspecifiedTimeView->SetText(""); 95 } 96 } 97