Changeset 80494 in vbox
- Timestamp:
- Aug 29, 2019 10:18:34 AM (5 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/runtime/information
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationRuntime.cpp
r80491 r80494 69 69 70 70 71 QString formatNumber(qu longlongnumber)71 QString formatNumber(quint64 number) 72 72 { 73 73 if (number <= 0) 74 74 return QString(); 75 /* See https://en.wikipedia.org/wiki/Metric_prefix for metric suffices:*/ 75 76 char suffices[] = {'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'}; 76 77 int zeroCount = (int)log10(number); … … 80 81 char result[128]; 81 82 sprintf(result, "%.2f", number / (float)pow(10, h)); 82 return QString("%1 83 return QString("%1%2").arg(result).arg(suffices[h / 3 - 1]); 83 84 } 84 85 … … 182 183 * @{ */ 183 184 void drawXAxisLabels(QPainter &painter, int iXSubAxisCount); 184 void drawPieChart(QPainter &painter, qu longlongiMaximum, int iDataIndex, const QRectF &chartRect, int iAlpha);185 void drawCombinedPieCharts(QPainter &painter, qu longlongiMaximum);186 void drawDoughnutChart(QPainter &painter, qu longlongiMaximum, int iDataIndex,185 void drawPieChart(QPainter &painter, quint64 iMaximum, int iDataIndex, const QRectF &chartRect, int iAlpha); 186 void drawCombinedPieCharts(QPainter &painter, quint64 iMaximum); 187 void drawDoughnutChart(QPainter &painter, quint64 iMaximum, int iDataIndex, 187 188 const QRectF &chartRect, const QRectF &innerRect, int iAlpha); 188 189 … … 621 622 } 622 623 623 qu longlongiMaximum = m_pMetric->maximum();624 quint64 iMaximum = m_pMetric->maximum(); 624 625 if (iMaximum == 0) 625 626 return; … … 637 638 } 638 639 639 const QQueue<qu longlong> *data = m_pMetric->data(k);640 const QQueue<quint64> *data = m_pMetric->data(k); 640 641 if (!m_fUseGradientLineColor) 641 642 painter.setPen(QPen(m_dataSeriesColor[k], 2.5)); … … 661 662 int iTextY = 0.5 * iFontHeight + m_iMarginTop + i * m_lineChartRect.height() / (float) (iYSubAxisCount + 1); 662 663 QString strValue; 663 qu longlongiValue = (iYSubAxisCount + 1 - i) * (iMaximum / (float) (iYSubAxisCount + 1));664 quint64 iValue = (iYSubAxisCount + 1 - i) * (iMaximum / (float) (iYSubAxisCount + 1)); 664 665 if (m_pMetric->unit().compare("%", Qt::CaseInsensitive) == 0) 665 666 strValue = QString::number(iValue); 666 667 else if (m_pMetric->unit().compare("kb", Qt::CaseInsensitive) == 0) 667 strValue = uiCommon().formatSize(_1K * (qu longlong)iValue, iDecimalCount);668 strValue = uiCommon().formatSize(_1K * (quint64)iValue, iDecimalCount); 668 669 else if (m_pMetric->unit().compare("b", Qt::CaseInsensitive) == 0 || 669 670 m_pMetric->unit().compare("b/s", Qt::CaseInsensitive) == 0) … … 700 701 } 701 702 702 void UIChart::drawPieChart(QPainter &painter, qu longlongiMaximum, int iDataIndex, const QRectF &chartRect, int iAlpha)703 void UIChart::drawPieChart(QPainter &painter, quint64 iMaximum, int iDataIndex, const QRectF &chartRect, int iAlpha) 703 704 { 704 705 if (!m_pMetric) 705 706 return; 706 707 /* First draw a doughnut shaped chart for the 1st data series */ 707 const QQueue<qu longlong> *data = m_pMetric->data(iDataIndex);708 const QQueue<quint64> *data = m_pMetric->data(iDataIndex); 708 709 if (!data || data->isEmpty()) 709 710 return; … … 732 733 } 733 734 734 void UIChart::drawDoughnutChart(QPainter &painter, qu longlongiMaximum, int iDataIndex,735 void UIChart::drawDoughnutChart(QPainter &painter, quint64 iMaximum, int iDataIndex, 735 736 const QRectF &chartRect, const QRectF &innerRect, int iAlpha) 736 737 { 737 const QQueue<qu longlong> *data = m_pMetric->data(iDataIndex);738 const QQueue<quint64> *data = m_pMetric->data(iDataIndex); 738 739 if (!data || data->isEmpty()) 739 740 return; … … 785 786 } 786 787 787 void UIChart::drawCombinedPieCharts(QPainter &painter, qu longlongiMaximum)788 void UIChart::drawCombinedPieCharts(QPainter &painter, quint64 iMaximum) 788 789 { 789 790 if (!m_pMetric) … … 797 798 /* First draw a doughnut shaped chart for the 1st data series */ 798 799 // int iDataIndex = 0; 799 // const QQueue<qu longlong> *data = m_pMetric->data(iDataIndex);800 // const QQueue<quint64> *data = m_pMetric->data(iDataIndex); 800 801 // if (!data || data->isEmpty()) 801 802 // return; … … 874 875 } 875 876 876 void UIMetric::setMaximum(qu longlongiMaximum)877 void UIMetric::setMaximum(quint64 iMaximum) 877 878 { 878 879 m_iMaximum = iMaximum; 879 880 } 880 881 881 qu longlongUIMetric::maximum() const882 quint64 UIMetric::maximum() const 882 883 { 883 884 return m_iMaximum; … … 894 895 } 895 896 896 void UIMetric::addData(int iDataSeriesIndex, qu longlongfData)897 void UIMetric::addData(int iDataSeriesIndex, quint64 fData) 897 898 { 898 899 if (iDataSeriesIndex >= DATA_SERIES_SIZE) … … 903 904 } 904 905 905 const QQueue<qu longlong> *UIMetric::data(int iDataSeriesIndex) const906 const QQueue<quint64> *UIMetric::data(int iDataSeriesIndex) const 906 907 { 907 908 if (iDataSeriesIndex >= DATA_SERIES_SIZE) … … 910 911 } 911 912 912 void UIMetric::setTotal(int iDataSeriesIndex, qu longlongiTotal)913 void UIMetric::setTotal(int iDataSeriesIndex, quint64 iTotal) 913 914 { 914 915 if (iDataSeriesIndex >= DATA_SERIES_SIZE) … … 917 918 } 918 919 919 qu longlongUIMetric::total(int iDataSeriesIndex) const920 quint64 UIMetric::total(int iDataSeriesIndex) const 920 921 { 921 922 if (iDataSeriesIndex >= DATA_SERIES_SIZE) … … 1199 1200 aReturnDataIndices, 1200 1201 aReturnDataLengths); 1201 qu longlongiTotalRAM = 0;1202 qu longlongiFreeRAM = 0;1202 quint64 iTotalRAM = 0; 1203 quint64 iFreeRAM = 0; 1203 1204 1204 1205 for (int i = 0; i < aReturnNames.size(); ++i) … … 1230 1231 1231 1232 /* Collect the data from IMachineDebugger::getStats(..): */ 1232 qu longlonguNetworkTotalReceive = 0;1233 qu longlonguNetworkTotalTransmit = 0;1234 1235 qu longlonguDiskIOTotalWritten = 0;1236 qu longlonguDiskIOTotalRead = 0;1237 1238 qu longlonguTotalVMExits = 0;1233 quint64 uNetworkTotalReceive = 0; 1234 quint64 uNetworkTotalTransmit = 0; 1235 1236 quint64 uDiskIOTotalWritten = 0; 1237 quint64 uDiskIOTotalRead = 0; 1238 1239 quint64 uTotalVMExits = 0; 1239 1240 1240 1241 QVector<DebuggerMetricData> xmlData = getTotalCounterFromDegugger(m_strQueryString); … … 1452 1453 } 1453 1454 1454 void UIInformationRuntime::updateNetworkGraphsAndMetric(qu longlong iReceiveTotal, qulonglongiTransmitTotal)1455 void UIInformationRuntime::updateNetworkGraphsAndMetric(quint64 iReceiveTotal, quint64 iTransmitTotal) 1455 1456 { 1456 1457 UIMetric &NetMetric = m_subMetrics[m_strNetworkMetricName]; 1457 1458 1458 qu longlongiReceiveRate = iReceiveTotal - NetMetric.total(0);1459 qu longlongiTransmitRate = iTransmitTotal - NetMetric.total(1);1459 quint64 iReceiveRate = iReceiveTotal - NetMetric.total(0); 1460 quint64 iTransmitRate = iTransmitTotal - NetMetric.total(1); 1460 1461 1461 1462 NetMetric.setTotal(0, iReceiveTotal); … … 1471 1472 NetMetric.addData(0, iReceiveRate); 1472 1473 NetMetric.addData(1, iTransmitRate); 1473 qu longlongiMaximum = qMax(NetMetric.maximum(), qMax(iReceiveRate, iTransmitRate));1474 quint64 iMaximum = qMax(NetMetric.maximum(), qMax(iReceiveRate, iTransmitRate)); 1474 1475 NetMetric.setMaximum(iMaximum); 1475 1476 … … 1496 1497 } 1497 1498 1498 void UIInformationRuntime::updateDiskIOGraphsAndMetric(qu longlong uDiskIOTotalWritten, qulonglonguDiskIOTotalRead)1499 void UIInformationRuntime::updateDiskIOGraphsAndMetric(quint64 uDiskIOTotalWritten, quint64 uDiskIOTotalRead) 1499 1500 { 1500 1501 UIMetric &diskMetric = m_subMetrics[m_strDiskIOMetricName]; 1501 1502 1502 qu longlongiWriteRate = uDiskIOTotalWritten - diskMetric.total(0);1503 qu longlongiReadRate = uDiskIOTotalRead - diskMetric.total(1);1503 quint64 iWriteRate = uDiskIOTotalWritten - diskMetric.total(0); 1504 quint64 iReadRate = uDiskIOTotalRead - diskMetric.total(1); 1504 1505 1505 1506 diskMetric.setTotal(0, uDiskIOTotalWritten); … … 1514 1515 diskMetric.addData(0, iWriteRate); 1515 1516 diskMetric.addData(1, iReadRate); 1516 qu longlongiMaximum = qMax(diskMetric.maximum(), qMax(iWriteRate, iReadRate));1517 quint64 iMaximum = qMax(diskMetric.maximum(), qMax(iWriteRate, iReadRate)); 1517 1518 diskMetric.setMaximum(iMaximum); 1518 1519 … … 1541 1542 1542 1543 1543 void UIInformationRuntime::updateVMExitMetric(qu longlonguTotalVMExits)1544 void UIInformationRuntime::updateVMExitMetric(quint64 uTotalVMExits) 1544 1545 { 1545 1546 if (uTotalVMExits <= 0) … … 1548 1549 UIMetric &VMExitMetric = m_subMetrics[m_strVMExitMetricName]; 1549 1550 1550 qu longlongiRate = uTotalVMExits - VMExitMetric.total(0);1551 quint64 iRate = uTotalVMExits - VMExitMetric.total(0); 1551 1552 1552 1553 VMExitMetric.setTotal(0, uTotalVMExits); … … 1560 1561 1561 1562 VMExitMetric.addData(0, iRate); 1562 qu longlongiMaximum = qMax(VMExitMetric.maximum(), iRate);1563 quint64 iMaximum = qMax(VMExitMetric.maximum(), iRate); 1563 1564 VMExitMetric.setMaximum(iMaximum); 1564 1565 … … 1599 1600 QXmlStreamReader xmlReader; 1600 1601 xmlReader.addData(strStats); 1601 qu longlongiTotal = 0;1602 quint64 iTotal = 0; 1602 1603 if (xmlReader.readNextStartElement()) 1603 1604 { … … 1607 1608 { 1608 1609 QXmlStreamAttributes attributes = xmlReader.attributes(); 1609 qu longlongiCounter = attributes.value("c").toULongLong();1610 quint64 iCounter = attributes.value("c").toULongLong(); 1610 1611 iTotal += iCounter; 1611 1612 xmlReader.skipCurrentElement(); … … 1615 1616 { 1616 1617 QXmlStreamAttributes attributes = xmlReader.attributes(); 1617 qu longlongiCounter = attributes.value("val").toULongLong();1618 quint64 iCounter = attributes.value("val").toULongLong(); 1618 1619 iTotal += iCounter; 1619 1620 xmlReader.skipCurrentElement(); -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/information/UIInformationRuntime.h
r80451 r80494 54 54 DebuggerMetricData() 55 55 : m_counter(0){} 56 DebuggerMetricData(const QString & strName, qu longlongcounter)56 DebuggerMetricData(const QString & strName, quint64 counter) 57 57 :m_strName(strName) 58 58 , m_counter(counter){} 59 59 QString m_strName; 60 qu longlongm_counter;60 quint64 m_counter; 61 61 }; 62 62 … … 69 69 const QString &name() const; 70 70 71 void setMaximum(qu longlongiMaximum);72 qu longlongmaximum() const;71 void setMaximum(quint64 iMaximum); 72 quint64 maximum() const; 73 73 74 74 void setUnit(QString strUnit); 75 75 const QString &unit() const; 76 76 77 void addData(int iDataSeriesIndex, qu longlongfData);78 const QQueue<qu longlong> *data(int iDataSeriesIndex) const;79 80 void setTotal(int iDataSeriesIndex, qu longlongiTotal);81 qu longlongtotal(int iDataSeriesIndex) const;77 void addData(int iDataSeriesIndex, quint64 fData); 78 const QQueue<quint64> *data(int iDataSeriesIndex) const; 79 80 void setTotal(int iDataSeriesIndex, quint64 iTotal); 81 quint64 total(int iDataSeriesIndex) const; 82 82 83 83 bool requiresGuestAdditions() const; … … 119 119 QString m_strName; 120 120 QString m_strUnit; 121 qu longlongm_iMaximum;122 QQueue<qu longlong> m_data[DATA_SERIES_SIZE];121 quint64 m_iMaximum; 122 QQueue<quint64> m_data[DATA_SERIES_SIZE]; 123 123 /** The total data (the counter value we get from IMachineDebugger API). For the metrics 124 124 * we get from IMachineDebugger m_data values are computed as deltas of total values t - (t-1) */ 125 qu longlongm_iTotal[DATA_SERIES_SIZE];125 quint64 m_iTotal[DATA_SERIES_SIZE]; 126 126 int m_iMaximumQueueSize; 127 127 bool m_fRequiresGuestAdditions; … … 164 164 void updateCPUGraphsAndMetric(ULONG iLoadPercentage, ULONG iOtherPercentage); 165 165 void updateRAMGraphsAndMetric(quint64 iTotalRAM, quint64 iFreeRAM); 166 void updateNetworkGraphsAndMetric(qu longlong iReceiveTotal, qulonglongiTransmitTotal);167 void updateDiskIOGraphsAndMetric(qu longlong uDiskIOTotalWritten, qulonglonguDiskIOTotalRead);168 void updateVMExitMetric(qu longlonguTotalVMExits);166 void updateNetworkGraphsAndMetric(quint64 iReceiveTotal, quint64 iTransmitTotal); 167 void updateDiskIOGraphsAndMetric(quint64 uDiskIOTotalWritten, quint64 uDiskIOTotalRead); 168 void updateVMExitMetric(quint64 uTotalVMExits); 169 169 170 170 QString dataColorString(const QString &strChartName, int iDataIndex); … … 232 232 /** The following string is used while querrying CMachineDebugger. */ 233 233 QString m_strQueryString; 234 qu longlongm_iTimeStep;234 quint64 m_iTimeStep; 235 235 }; 236 236
Note:
See TracChangeset
for help on using the changeset viewer.