Changeset 102644 in vbox for trunk/src/VBox/Frontends
- Timestamp:
- Dec 20, 2023 11:06:46 AM (15 months ago)
- svn:sync-xref-src-repo-rev:
- 160806
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.cpp
r102641 r102644 1027 1027 } 1028 1028 1029 void UIMetric::addData(int iDataSeriesIndex, quint64 iData, const QString &strLabel) 1030 { 1031 if (iDataSeriesIndex >= DATA_SERIES_SIZE) 1032 return; 1033 1034 addData(iDataSeriesIndex, iData); 1035 1036 m_labels[iDataSeriesIndex].enqueue(strLabel); 1037 if (m_data[iDataSeriesIndex].size() > m_iMaximumQueueSize) 1038 m_labels[iDataSeriesIndex].dequeue(); 1039 } 1040 1029 1041 const QQueue<quint64> *UIMetric::data(int iDataSeriesIndex) const 1030 1042 { … … 1495 1507 ULONG aPctOther; 1496 1508 m_comMachineDebugger.GetCPULoad(0x7fffffff, aPctExecuting, aPctHalted, aPctOther); 1497 updateCPU GraphsAndMetric(aPctExecuting, aPctOther);1509 updateCPUChart(aPctExecuting, aPctOther); 1498 1510 } 1499 1511 … … 1503 1515 quint64 cbNetworkTotalTransmitted = 0; 1504 1516 UIMonitorCommon::getNetworkLoad(m_comMachineDebugger, cbNetworkTotalReceived, cbNetworkTotalTransmitted); 1505 updateNetwork GraphsAndMetric(cbNetworkTotalReceived, cbNetworkTotalTransmitted);1517 updateNetworkChart(cbNetworkTotalReceived, cbNetworkTotalTransmitted); 1506 1518 } 1507 1519 … … 1511 1523 quint64 cbDiskIOTotalRead = 0; 1512 1524 UIMonitorCommon::getDiskLoad(m_comMachineDebugger, cbDiskIOTotalWritten, cbDiskIOTotalRead); 1513 updateDiskIO GraphsAndMetric(cbDiskIOTotalWritten, cbDiskIOTotalRead);1525 updateDiskIOChart(cbDiskIOTotalWritten, cbDiskIOTotalRead); 1514 1526 } 1515 1527 … … 1721 1733 } 1722 1734 1723 void UIVMActivityMonitorLocal::updateCPU GraphsAndMetric(ULONG iExecutingPercentage, ULONG iOtherPercentage)1735 void UIVMActivityMonitorLocal::updateCPUChart(ULONG iExecutingPercentage, ULONG iOtherPercentage) 1724 1736 { 1725 1737 UIMetric &CPUMetric = m_metrics[m_strCPUMetricName]; … … 1761 1773 } 1762 1774 1763 void UIVMActivityMonitorLocal::updateNetwork GraphsAndMetric(quint64 uReceiveTotal, quint64 uTransmitTotal)1775 void UIVMActivityMonitorLocal::updateNetworkChart(quint64 uReceiveTotal, quint64 uTransmitTotal) 1764 1776 { 1765 1777 UIMetric &NetMetric = m_metrics[m_strNetworkMetricName]; … … 1795 1807 } 1796 1808 1797 void UIVMActivityMonitorLocal::updateDiskIO GraphsAndMetric(quint64 uDiskIOTotalWritten, quint64 uDiskIOTotalRead)1809 void UIVMActivityMonitorLocal::updateDiskIOChart(quint64 uDiskIOTotalWritten, quint64 uDiskIOTotalRead) 1798 1810 { 1799 1811 UIMetric &diskMetric = m_metrics[m_strDiskIOMetricName]; … … 1942 1954 { 1943 1955 float fValue = data[i].toFloat(); 1944 updateCPU GraphsAndMetric((ULONG) fValue, 0);1956 updateCPUChart((ULONG) fValue, timeStamps[i]); 1945 1957 } 1946 1958 else if (enmMetricType == KMetricType_NetworksBytesOut) … … 2016 2028 } 2017 2029 2018 void UIVMActivityMonitorCloud::updateCPU GraphsAndMetric(ULONG iLoadPercentage, ULONG /*iOtherPercentage*/)2030 void UIVMActivityMonitorCloud::updateCPUChart(ULONG iLoadPercentage, const QString &strLabel) 2019 2031 { 2020 2032 UIMetric &CPUMetric = m_metrics[m_strCPUMetricName]; 2021 CPUMetric.addData(0, iLoadPercentage );2033 CPUMetric.addData(0, iLoadPercentage, strLabel); 2022 2034 CPUMetric.setMaximum(100); 2023 2035 if (m_infoLabels.contains(m_strCPUMetricName) && m_infoLabels[m_strCPUMetricName]) … … 2037 2049 } 2038 2050 2039 void UIVMActivityMonitorCloud::updateRAMGraphsAndMetric(quint64 /*iTotalRAM*/, quint64 /*iFreeRAM*/){} 2040 void UIVMActivityMonitorCloud::updateNetworkGraphsAndMetric(quint64 uReceiveRate, quint64 uTransmitRate) 2051 void UIVMActivityMonitorCloud::updateNetworkChart(quint64 uReceiveRate, quint64 uTransmitRate, const QString &strLabel) 2041 2052 { 2042 2053 UIMetric &networkMetric = m_metrics[m_strNetworkMetricName]; 2043 networkMetric.addData(0, uReceiveRate );2044 networkMetric.addData(1, uTransmitRate );2054 networkMetric.addData(0, uReceiveRate, strLabel); 2055 networkMetric.addData(1, uTransmitRate, strLabel); 2045 2056 2046 2057 if (m_infoLabels.contains(m_strNetworkMetricName) && m_infoLabels[m_strNetworkMetricName]) … … 2056 2067 } 2057 2068 2058 void UIVMActivityMonitorCloud::updateDiskIO GraphsAndMetric(quint64 uWriteRate, quint64 uReadRate)2069 void UIVMActivityMonitorCloud::updateDiskIOChart(quint64 uWriteRate, quint64 uReadRate, const QString &strLabel) 2059 2070 { 2060 2071 UIMetric &diskMetric = m_metrics[m_strDiskIOMetricName]; 2061 2072 2062 2063 diskMetric.addData(0, uWriteRate); 2064 diskMetric.addData(1, uReadRate); 2065 2073 diskMetric.addData(0, uWriteRate, strLabel); 2074 diskMetric.addData(1, uReadRate, strLabel); 2066 2075 2067 2076 if (m_infoLabels.contains(m_strDiskIOMetricName) && m_infoLabels[m_strDiskIOMetricName]) … … 2178 2187 if (m_diskReadCache.contains(strTimeStamp)) 2179 2188 { 2180 updateDiskIO GraphsAndMetric((quint64) iValue, (quint64) m_diskReadCache[strTimeStamp]);2189 updateDiskIOChart((quint64) iValue, (quint64) m_diskReadCache[strTimeStamp], strTimeStamp); 2181 2190 m_diskReadCache[strTimeStamp]; 2182 2191 } … … 2192 2201 if (m_diskWriteCache.contains(strTimeStamp)) 2193 2202 { 2194 updateDiskIO GraphsAndMetric((quint64) m_diskWriteCache[strTimeStamp], (quint64) iValue);2203 updateDiskIOChart((quint64) m_diskWriteCache[strTimeStamp], (quint64) iValue, strTimeStamp); 2195 2204 m_diskWriteCache.remove(strTimeStamp); 2196 2205 } … … 2205 2214 if (m_networkTransmitCache.contains(strTimeStamp)) 2206 2215 { 2207 updateNetwork GraphsAndMetric((quint64) iValue, (quint64) m_networkTransmitCache[strTimeStamp]);2216 updateNetworkChart((quint64) iValue, (quint64) m_networkTransmitCache[strTimeStamp], strTimeStamp); 2208 2217 m_networkTransmitCache.remove(strTimeStamp); 2209 2218 } … … 2219 2228 if (m_networkReceiveCache.contains(strTimeStamp)) 2220 2229 { 2221 updateNetwork GraphsAndMetric((quint64) m_networkReceiveCache[strTimeStamp], (quint64) iValue);2230 updateNetworkChart((quint64) m_networkReceiveCache[strTimeStamp], (quint64) iValue, strTimeStamp); 2222 2231 m_networkReceiveCache.remove(strTimeStamp); 2223 2232 } -
trunk/src/VBox/Frontends/VirtualBox/src/activity/vmactivity/UIVMActivityMonitor.h
r102635 r102644 64 64 #define DATA_SERIES_SIZE 2 65 65 66 struct UIMetricData 67 { 68 quint64 m_value; 69 QString m_strLabel; 70 }; 71 66 72 /** UIMetric represents a performance metric and is used to store data related to the corresponding metric. */ 67 73 class UIMetric … … 81 87 82 88 void addData(int iDataSeriesIndex, quint64 fData); 89 void addData(int iDataSeriesIndex, quint64 fData, const QString &strLabel); 83 90 const QQueue<quint64> *data(int iDataSeriesIndex) const; 84 91 … … 111 118 quint64 m_iMaximum; 112 119 QQueue<quint64> m_data[DATA_SERIES_SIZE]; 120 QQueue<QString> m_labels[DATA_SERIES_SIZE]; 113 121 /** The total data (the counter value we get from IMachineDebugger API). For the metrics 114 122 * we get from IMachineDebugger m_data values are computed as deltas of total values t - (t-1) */ … … 152 160 virtual void reset() = 0; 153 161 virtual void start() = 0; 154 155 /** @name The following functions update corresponding metric charts and labels with new values156 * @{ */157 virtual void updateCPUGraphsAndMetric(ULONG iLoadPercentage, ULONG iOtherPercentage) = 0;158 virtual void updateRAMGraphsAndMetric(quint64 iTotalRAM, quint64 iFreeRAM) = 0;159 virtual void updateNetworkGraphsAndMetric(quint64 uReceiveTotal, quint64 uTransmitTotal) = 0;160 virtual void updateDiskIOGraphsAndMetric(quint64 uDiskIOTotalWritten, quint64 uDiskIOTotalRead) = 0;161 /** @} */162 162 163 163 /** Returns a QColor for the chart with @p strChartName and data series with @p iDataIndex. */ … … 283 283 bool guestAdditionsAvailable(const char *pszMinimumVersion); 284 284 void enableDisableGuestAdditionDependedWidgets(bool fEnable); 285 void updateCPU GraphsAndMetric(ULONG iLoadPercentage, ULONG iOtherPercentage);285 void updateCPUChart(ULONG iLoadPercentage, ULONG iOtherPercentage); 286 286 void updateRAMGraphsAndMetric(quint64 iTotalRAM, quint64 iFreeRAM); 287 void updateNetwork GraphsAndMetric(quint64 uReceiveTotal, quint64 uTransmitTotal);288 void updateDiskIO GraphsAndMetric(quint64 uDiskIOTotalWritten, quint64 uDiskIOTotalRead);287 void updateNetworkChart(quint64 uReceiveTotal, quint64 uTransmitTotal); 288 void updateDiskIOChart(quint64 uDiskIOTotalWritten, quint64 uDiskIOTotalRead); 289 289 void updateVMExitMetric(quint64 uTotalVMExits); 290 290 void resetVMExitInfoLabel(); … … 332 332 /** @name The following functions update corresponding metric charts and labels with new values 333 333 * @{ */ 334 virtual void updateCPUGraphsAndMetric(ULONG iLoadPercentage, ULONG iOtherPercentage) RT_OVERRIDE; 335 virtual void updateRAMGraphsAndMetric(quint64 iTotalRAM, quint64 iFreeRAM) RT_OVERRIDE; 336 virtual void updateNetworkGraphsAndMetric(quint64 uReceive, quint64 uTransmit) RT_OVERRIDE; 337 virtual void updateDiskIOGraphsAndMetric(quint64 uWriteRate, quint64 uReadRate) RT_OVERRIDE; 334 virtual void updateCPUChart(ULONG iLoadPercentage, const QString &strLabel); 335 virtual void updateNetworkChart(quint64 uReceive, quint64 uTransmit, const QString &strLabel); 336 virtual void updateDiskIOChart(quint64 uWriteRate, quint64 uReadRate, const QString &strLabel); 338 337 /** @} */ 339 338 virtual void resetCPUInfoLabel();
Note:
See TracChangeset
for help on using the changeset viewer.