VirtualBox

Changeset 103110 in vbox for trunk


Ignore:
Timestamp:
Jan 29, 2024 5:37:36 PM (13 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
161356
Message:

FE/Qt: bugref:10501. Refactoring item classes. part 3.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/activity/overview/UIVMActivityOverviewWidget.cpp

    r103107 r103110  
    239239    virtual bool isRunning() const = 0;
    240240    virtual bool isCloudVM() const = 0;
     241    virtual void updateColumnData() = 0;
    241242    QUuid         m_VMuid;
    242243    QString       m_strVMName;
     
    257258    quint64 m_uDiskReadTotal;
    258259
     260protected:
     261
     262    virtual void updateMetricData() = 0;
    259263
    260264    /** The strings of each column for the item. We update this during performance query
     
    264268private:
    265269
    266     void setupPerformanceCollector();
    267270};
    268271
     
    286289    virtual bool isRunning() const override;
    287290    virtual bool isCloudVM() const override;
     291    virtual void updateColumnData() override;
    288292    void setMachineState(KMachineState enmState);
    289293
     
    294298
    295299    CMachineDebugger m_comDebugger;
     300
     301protected:
     302
     303    virtual void updateMetricData() override;
    296304
    297305private:
     
    316324    virtual bool isRunning() const override;
    317325    virtual bool isCloudVM() const override;
     326    virtual void updateColumnData() override;
     327
     328protected:
     329
     330    virtual void updateMetricData() override;
    318331
    319332private:
     
    924937}
    925938
     939void UIActivityOverviewItemCloud::updateMetricData()
     940{
     941}
     942
     943void UIActivityOverviewItemCloud::updateColumnData()
     944{
     945}
     946
    926947
    927948/*********************************************************************************************************************************
     
    9851006{
    9861007    m_enmMachineState = enmState;
     1008}
     1009
     1010
     1011void UIActivityOverviewItemLocal::updateMetricData()
     1012{
     1013    if (!m_comDebugger.isOk())
     1014        return;
     1015
     1016    ULONG aPctExecuting;
     1017    ULONG aPctHalted;
     1018    ULONG aPctVMM;
     1019
     1020    /* CPU Load: */
     1021    m_comDebugger.GetCPULoad(0x7fffffff, aPctExecuting, aPctHalted, aPctVMM);
     1022    m_uCPUGuestLoad = aPctExecuting;
     1023    m_uCPUVMMLoad = aPctVMM;
     1024
     1025    /* Network rate: */
     1026    quint64 uPrevDownTotal = m_uNetworkDownTotal;
     1027    quint64 uPrevUpTotal = m_uNetworkUpTotal;
     1028    UIMonitorCommon::getNetworkLoad(m_comDebugger,
     1029                                    m_uNetworkDownTotal, m_uNetworkUpTotal);
     1030    m_uNetworkDownRate = m_uNetworkDownTotal - uPrevDownTotal;
     1031    m_uNetworkUpRate = m_uNetworkUpTotal - uPrevUpTotal;
     1032
     1033    /* IO rate: */
     1034    quint64 uPrevWriteTotal = m_uDiskWriteTotal;
     1035    quint64 uPrevReadTotal = m_uDiskReadTotal;
     1036    UIMonitorCommon::getDiskLoad(m_comDebugger,
     1037                                 m_uDiskWriteTotal, m_uDiskReadTotal);
     1038    m_uDiskWriteRate = m_uDiskWriteTotal - uPrevWriteTotal;
     1039    m_uDiskReadRate = m_uDiskReadTotal - uPrevReadTotal;
     1040
     1041    /* VM Exits: */
     1042    quint64 uPrevVMExitsTotal = m_uVMExitTotal;
     1043    UIMonitorCommon::getVMMExitCount(m_comDebugger, m_uVMExitTotal);
     1044    m_uVMExitRate = m_uVMExitTotal - uPrevVMExitsTotal;
     1045}
     1046
     1047void UIActivityOverviewItemLocal::updateColumnData()
     1048{
     1049    updateMetricData();
     1050
     1051    int iDecimalCount = 2;
     1052
     1053    m_columnData[VMActivityOverviewColumn_Name] = m_strVMName;
     1054    m_columnData[VMActivityOverviewColumn_CPUGuestLoad] =
     1055        QString("%1%").arg(QString::number(m_uCPUGuestLoad));
     1056    m_columnData[VMActivityOverviewColumn_CPUVMMLoad] =
     1057        QString("%1%").arg(QString::number(m_uCPUVMMLoad));
     1058
     1059    if (isWithGuestAdditions())
     1060        m_columnData[VMActivityOverviewColumn_RAMUsedAndTotal] =
     1061            QString("%1/%2").arg(UITranslator::formatSize(_1K * m_uUsedRAM, iDecimalCount)).
     1062            arg(UITranslator::formatSize(_1K * m_uTotalRAM, iDecimalCount));
     1063    else
     1064        m_columnData[VMActivityOverviewColumn_RAMUsedAndTotal] = UIVMActivityOverviewWidget::tr("N/A");
     1065
     1066    if (isWithGuestAdditions())
     1067        m_columnData[VMActivityOverviewColumn_RAMUsedPercentage] =
     1068            QString("%1%").arg(QString::number(m_fRAMUsagePercentage, 'f', 2));
     1069    else
     1070        m_columnData[VMActivityOverviewColumn_RAMUsedPercentage] = UIVMActivityOverviewWidget::tr("N/A");
     1071
     1072    m_columnData[VMActivityOverviewColumn_NetworkUpRate] =
     1073        QString("%1").arg(UITranslator::formatSize(m_uNetworkUpRate, iDecimalCount));
     1074
     1075    m_columnData[VMActivityOverviewColumn_NetworkDownRate] =
     1076        QString("%1").arg(UITranslator::formatSize(m_uNetworkDownRate, iDecimalCount));
     1077
     1078    m_columnData[VMActivityOverviewColumn_NetworkUpTotal] =
     1079        QString("%1").arg(UITranslator::formatSize(m_uNetworkUpTotal, iDecimalCount));
     1080
     1081    m_columnData[VMActivityOverviewColumn_NetworkDownTotal] =
     1082        QString("%1").arg(UITranslator::formatSize(m_uNetworkDownTotal, iDecimalCount));
     1083
     1084    m_columnData[VMActivityOverviewColumn_DiskIOReadRate] =
     1085        QString("%1").arg(UITranslator::formatSize(m_uDiskReadRate, iDecimalCount));
     1086
     1087    m_columnData[VMActivityOverviewColumn_DiskIOWriteRate] =
     1088        QString("%1").arg(UITranslator::formatSize(m_uDiskWriteRate, iDecimalCount));
     1089
     1090    m_columnData[VMActivityOverviewColumn_DiskIOReadTotal] =
     1091        QString("%1").arg(UITranslator::formatSize(m_uDiskReadTotal, iDecimalCount));
     1092
     1093    m_columnData[VMActivityOverviewColumn_DiskIOWriteTotal] =
     1094        QString("%1").arg(UITranslator::formatSize(m_uDiskWriteTotal, iDecimalCount));
     1095
     1096    m_columnData[VMActivityOverviewColumn_VMExits] =
     1097        QString("%1/%2").arg(UITranslator::addMetricSuffixToNumber(m_uVMExitRate)).
     1098        arg(UITranslator::addMetricSuffixToNumber(m_uVMExitTotal));
    9871099}
    9881100
     
    12481360void UIActivityOverviewModel::sltTimeout()
    12491361{
     1362
     1363
     1364    /* Host's RAM usage is obtained from IHost not from IPerformanceCollector: */
     1365    getHostRAMStats();
     1366
     1367    /* Use IPerformanceCollector to update VM RAM usage and Host CPU and file IO stats: */
     1368    queryPerformanceCollector();
     1369
     1370    for (int i = 0; i < m_itemList.size(); ++i)
     1371    {
     1372        if (m_itemList[i] && !m_itemList[i]->isCloudVM())
     1373            m_itemList[i]->updateColumnData();
     1374    }
     1375
    12501376#if 0
    1251     ULONG aPctExecuting;
    1252     ULONG aPctHalted;
    1253     ULONG aPctVMM;
    1254 
    1255     bool fCPUColumns = columnVisible(VMActivityOverviewColumn_CPUVMMLoad) || columnVisible(VMActivityOverviewColumn_CPUGuestLoad);
    1256     bool fNetworkColumns = columnVisible(VMActivityOverviewColumn_NetworkUpRate)
    1257         || columnVisible(VMActivityOverviewColumn_NetworkDownRate)
    1258         || columnVisible(VMActivityOverviewColumn_NetworkUpTotal)
    1259         || columnVisible(VMActivityOverviewColumn_NetworkDownTotal);
    1260     bool fIOColumns = columnVisible(VMActivityOverviewColumn_DiskIOReadRate)
    1261         || columnVisible(VMActivityOverviewColumn_DiskIOWriteRate)
    1262         || columnVisible(VMActivityOverviewColumn_DiskIOReadTotal)
    1263         || columnVisible(VMActivityOverviewColumn_DiskIOWriteTotal);
    1264     bool fVMExitColumn = columnVisible(VMActivityOverviewColumn_VMExits);
    1265 
    1266     /* Host's RAM usage is obtained from IHost not from IPerformanceCollectior: */
    1267     getHostRAMStats();
    1268 
    1269     /* RAM usage and Host Stats: */
    1270     queryPerformanceCollector();
    1271 
    1272     for (int i = 0; i < m_itemList.size(); ++i)
    1273     {
    1274         if (!m_itemList[i].m_comDebugger.isNull())
    1275         {
    1276             /* CPU Load: */
    1277             if (fCPUColumns)
    1278             {
    1279                 m_itemList[i].m_comDebugger.GetCPULoad(0x7fffffff, aPctExecuting, aPctHalted, aPctVMM);
    1280                 m_itemList[i].m_uCPUGuestLoad = aPctExecuting;
    1281                 m_itemList[i].m_uCPUVMMLoad = aPctVMM;
    1282             }
    1283             /* Network rate: */
    1284             if (fNetworkColumns)
    1285             {
    1286                 quint64 uPrevDownTotal = m_itemList[i].m_uNetworkDownTotal;
    1287                 quint64 uPrevUpTotal = m_itemList[i].m_uNetworkUpTotal;
    1288                 UIMonitorCommon::getNetworkLoad(m_itemList[i].m_comDebugger,
    1289                                                 m_itemList[i].m_uNetworkDownTotal, m_itemList[i].m_uNetworkUpTotal);
    1290                 m_itemList[i].m_uNetworkDownRate = m_itemList[i].m_uNetworkDownTotal - uPrevDownTotal;
    1291                 m_itemList[i].m_uNetworkUpRate = m_itemList[i].m_uNetworkUpTotal - uPrevUpTotal;
    1292             }
    1293             /* IO rate: */
    1294             if (fIOColumns)
    1295             {
    1296                 quint64 uPrevWriteTotal = m_itemList[i].m_uDiskWriteTotal;
    1297                 quint64 uPrevReadTotal = m_itemList[i].m_uDiskReadTotal;
    1298                 UIMonitorCommon::getDiskLoad(m_itemList[i].m_comDebugger,
    1299                                              m_itemList[i].m_uDiskWriteTotal, m_itemList[i].m_uDiskReadTotal);
    1300                 m_itemList[i].m_uDiskWriteRate = m_itemList[i].m_uDiskWriteTotal - uPrevWriteTotal;
    1301                 m_itemList[i].m_uDiskReadRate = m_itemList[i].m_uDiskReadTotal - uPrevReadTotal;
    1302             }
    1303             /* VM Exits: */
    1304             if (fVMExitColumn)
    1305             {
    1306                 quint64 uPrevVMExitsTotal = m_itemList[i].m_uVMExitTotal;
    1307                 UIMonitorCommon::getVMMExitCount(m_itemList[i].m_comDebugger, m_itemList[i].m_uVMExitTotal);
    1308                 m_itemList[i].m_uVMExitRate = m_itemList[i].m_uVMExitTotal - uPrevVMExitsTotal;
    1309             }
    1310         }
    1311     }
    1312     int iDecimalCount = 2;
    1313     for (int i = 0; i < m_itemList.size(); ++i)
    1314     {
    1315         m_itemList[i].m_columnData[VMActivityOverviewColumn_Name] = m_itemList[i].m_strVMName;
    1316         m_itemList[i].m_columnData[VMActivityOverviewColumn_CPUGuestLoad] =
    1317             QString("%1%").arg(QString::number(m_itemList[i].m_uCPUGuestLoad));
    1318         m_itemList[i].m_columnData[VMActivityOverviewColumn_CPUVMMLoad] =
    1319             QString("%1%").arg(QString::number(m_itemList[i].m_uCPUVMMLoad));
    1320 
    1321         if (m_itemList[i].isWithGuestAdditions())
    1322             m_itemList[i].m_columnData[VMActivityOverviewColumn_RAMUsedAndTotal] =
    1323                 QString("%1/%2").arg(UITranslator::formatSize(_1K * m_itemList[i].m_uUsedRAM, iDecimalCount)).
    1324                 arg(UITranslator::formatSize(_1K * m_itemList[i].m_uTotalRAM, iDecimalCount));
    1325         else
    1326             m_itemList[i].m_columnData[VMActivityOverviewColumn_RAMUsedAndTotal] = UIVMActivityOverviewWidget::tr("N/A");
    1327 
    1328         if (m_itemList[i].isWithGuestAdditions())
    1329             m_itemList[i].m_columnData[VMActivityOverviewColumn_RAMUsedPercentage] =
    1330                 QString("%1%").arg(QString::number(m_itemList[i].m_fRAMUsagePercentage, 'f', 2));
    1331         else
    1332             m_itemList[i].m_columnData[VMActivityOverviewColumn_RAMUsedPercentage] = UIVMActivityOverviewWidget::tr("N/A");
    1333 
    1334         m_itemList[i].m_columnData[VMActivityOverviewColumn_NetworkUpRate] =
    1335             QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uNetworkUpRate, iDecimalCount));
    1336 
    1337         m_itemList[i].m_columnData[VMActivityOverviewColumn_NetworkDownRate] =
    1338             QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uNetworkDownRate, iDecimalCount));
    1339 
    1340         m_itemList[i].m_columnData[VMActivityOverviewColumn_NetworkUpTotal] =
    1341             QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uNetworkUpTotal, iDecimalCount));
    1342 
    1343         m_itemList[i].m_columnData[VMActivityOverviewColumn_NetworkDownTotal] =
    1344             QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uNetworkDownTotal, iDecimalCount));
    1345 
    1346         m_itemList[i].m_columnData[VMActivityOverviewColumn_DiskIOReadRate] =
    1347             QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uDiskReadRate, iDecimalCount));
    1348 
    1349         m_itemList[i].m_columnData[VMActivityOverviewColumn_DiskIOWriteRate] =
    1350             QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uDiskWriteRate, iDecimalCount));
    1351 
    1352         m_itemList[i].m_columnData[VMActivityOverviewColumn_DiskIOReadTotal] =
    1353             QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uDiskReadTotal, iDecimalCount));
    1354 
    1355         m_itemList[i].m_columnData[VMActivityOverviewColumn_DiskIOWriteTotal] =
    1356             QString("%1").arg(UITranslator::formatSize(m_itemList[i].m_uDiskWriteTotal, iDecimalCount));
    1357 
    1358         m_itemList[i].m_columnData[VMActivityOverviewColumn_VMExits] =
    1359             QString("%1/%2").arg(UITranslator::addMetricSuffixToNumber(m_itemList[i].m_uVMExitRate)).
    1360             arg(UITranslator::addMetricSuffixToNumber(m_itemList[i].m_uVMExitTotal));
    1361     }
    13621377
    13631378    for (int i = 0; i < (int)VMActivityOverviewColumn_Max; ++i)
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette