MCPcopy Create free account
hub / github.com/KDAB/GammaRay / TimerIdData

Class TimerIdData

plugins/timertop/timermodel.cpp:57–152  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

55};
56
57struct TimerIdData
58{
59 TimerIdData() = default;
60
61 void update(const TimerId &id, QObject *receiver = nullptr)
62 {
63 info.update(id, receiver);
64 }
65
66 void addEvent(const GammaRay::TimeoutEvent &event)
67 {
68 timeoutEvents.append(event);
69 if (timeoutEvents.size() > s_maxTimeoutEvents)
70 timeoutEvents.removeFirst();
71 totalWakeupsEvents++;
72 changed = true;
73 }
74
75 TimerIdInfo &toInfo(TimerId::Type type)
76 {
77 info.totalWakeups = totalWakeups();
78 info.wakeupsPerSec = wakeupsPerSec();
79 info.timePerWakeup = timePerWakeup(type);
80 info.maxWakeupTime = maxWakeupTime(type);
81 return info;
82 }
83
84 int totalWakeups() const
85 {
86 return totalWakeupsEvents;
87 }
88
89 qreal wakeupsPerSec() const
90 {
91 int wakeups = 0;
92 int start = 0;
93 int end = timeoutEvents.size() - 1;
94 for (int i = end; i >= 0; i--) {
95 const TimeoutEvent &event = timeoutEvents.at(i);
96 if (event.timeStamp.msecsTo(QTime::currentTime()) > s_maxTimeSpan) {
97 start = i;
98 break;
99 }
100 wakeups++;
101 }
102
103 if (wakeups > 0 && end > start) {
104 const QTime startTime = timeoutEvents[start].timeStamp;
105 const QTime endTime = timeoutEvents[end].timeStamp;
106 const int timeSpan = startTime.msecsTo(endTime);
107 const qreal wakeupsPerSec = wakeups / ( qreal )timeSpan * ( qreal )1000;
108 return wakeupsPerSec;
109 }
110 return 0;
111 }
112
113 qreal timePerWakeup(TimerId::Type type) const
114 {

Callers 2

eventNotifyCallbackMethod · 0.70
preSignalActivateMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected