diff --git a/src/base/bittorrent/cachestatus.h b/src/base/bittorrent/cachestatus.h index 08ae145f5..5f59ba21c 100644 --- a/src/base/bittorrent/cachestatus.h +++ b/src/base/bittorrent/cachestatus.h @@ -38,6 +38,6 @@ namespace BitTorrent quint64 jobQueueLength = 0; quint64 averageJobTime = 0; quint64 queuedBytes = 0; - qreal readRatio = 0.0; + qreal readRatio = 0; // TODO: remove when LIBTORRENT_VERSION_NUM >= 20000 }; } diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index 7722bdf18..0fac66f0c 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -1220,8 +1220,10 @@ void Session::initMetrics() m_metricIndices.disk.numBlocksRead = lt::find_metric_idx("disk.num_blocks_read"); Q_ASSERT(m_metricIndices.disk.numBlocksRead >= 0); +#if (LIBTORRENT_VERSION_NUM < 20000) m_metricIndices.disk.numBlocksCacheHits = lt::find_metric_idx("disk.num_blocks_cache_hits"); Q_ASSERT(m_metricIndices.disk.numBlocksCacheHits >= 0); +#endif m_metricIndices.disk.writeJobs = lt::find_metric_idx("disk.num_write_ops"); Q_ASSERT(m_metricIndices.disk.writeJobs >= 0); @@ -4908,11 +4910,14 @@ void Session::handleSessionStatsAlert(const lt::session_stats_alert *p) m_status.peersCount = stats[m_metricIndices.peer.numPeersConnected]; const int64_t numBlocksRead = stats[m_metricIndices.disk.numBlocksRead]; - const int64_t numBlocksCacheHits = stats[m_metricIndices.disk.numBlocksCacheHits]; m_cacheStatus.totalUsedBuffers = stats[m_metricIndices.disk.diskBlocksInUse]; - m_cacheStatus.readRatio = static_cast(numBlocksCacheHits) / std::max(numBlocksCacheHits + numBlocksRead, 1); m_cacheStatus.jobQueueLength = stats[m_metricIndices.disk.queuedDiskJobs]; +#if (LIBTORRENT_VERSION_NUM < 20000) + const int64_t numBlocksCacheHits = stats[m_metricIndices.disk.numBlocksCacheHits]; + m_cacheStatus.readRatio = static_cast(numBlocksCacheHits) / std::max((numBlocksCacheHits + numBlocksRead), 1); +#endif + const int64_t totalJobs = stats[m_metricIndices.disk.writeJobs] + stats[m_metricIndices.disk.readJobs] + stats[m_metricIndices.disk.hashJobs]; m_cacheStatus.averageJobTime = (totalJobs > 0) diff --git a/src/base/bittorrent/session.h b/src/base/bittorrent/session.h index eb4319550..31b00f597 100644 --- a/src/base/bittorrent/session.h +++ b/src/base/bittorrent/session.h @@ -197,7 +197,9 @@ namespace BitTorrent { int diskBlocksInUse = -1; int numBlocksRead = -1; +#if (LIBTORRENT_VERSION_NUM < 20000) int numBlocksCacheHits = -1; +#endif int writeJobs = -1; int readJobs = -1; int hashJobs = -1; diff --git a/src/gui/statsdialog.cpp b/src/gui/statsdialog.cpp index 0e1d160d4..1cb43f5f3 100644 --- a/src/gui/statsdialog.cpp +++ b/src/gui/statsdialog.cpp @@ -52,6 +52,11 @@ StatsDialog::StatsDialog(QWidget *parent) connect(BitTorrent::Session::instance(), &BitTorrent::Session::statsUpdated , this, &StatsDialog::update); +#if (LIBTORRENT_VERSION_NUM >= 20000) + m_ui->labelCacheHitsText->hide(); + m_ui->labelCacheHits->hide(); +#endif + Utils::Gui::resize(this); show(); } @@ -78,11 +83,13 @@ void StatsDialog::update() ((atd > 0) && (atu > 0)) ? Utils::String::fromDouble(static_cast(atu) / atd, 2) : "-"); +#if (LIBTORRENT_VERSION_NUM < 20000) // Cache hits - qreal readRatio = cs.readRatio; + const qreal readRatio = cs.readRatio; m_ui->labelCacheHits->setText(QString::fromLatin1("%1%").arg((readRatio > 0) ? Utils::String::fromDouble(100 * readRatio, 2) : QLatin1String("0"))); +#endif // Buffers size m_ui->labelTotalBuf->setText(Utils::Misc::friendlyUnit(cs.totalUsedBuffers * 16 * 1024)); // Disk overload (100%) equivalent diff --git a/src/gui/statsdialog.h b/src/gui/statsdialog.h index 2bc3289a1..d2add7915 100644 --- a/src/gui/statsdialog.h +++ b/src/gui/statsdialog.h @@ -35,7 +35,7 @@ namespace Ui class StatsDialog; } -class StatsDialog : public QDialog +class StatsDialog final : public QDialog { Q_OBJECT diff --git a/src/webui/api/synccontroller.cpp b/src/webui/api/synccontroller.cpp index b333b7db7..f486cf604 100644 --- a/src/webui/api/synccontroller.cpp +++ b/src/webui/api/synccontroller.cpp @@ -134,7 +134,7 @@ namespace map[KEY_TRANSFER_GLOBAL_RATIO] = ((atd > 0) && (atu > 0)) ? Utils::String::fromDouble(static_cast(atu) / atd, 2) : "-"; map[KEY_TRANSFER_TOTAL_PEER_CONNECTIONS] = sessionStatus.peersCount; - const qreal readRatio = cacheStatus.readRatio; + const qreal readRatio = cacheStatus.readRatio; // TODO: remove when LIBTORRENT_VERSION_NUM >= 20000 map[KEY_TRANSFER_READ_CACHE_HITS] = (readRatio > 0) ? Utils::String::fromDouble(100 * readRatio, 2) : "0"; map[KEY_TRANSFER_TOTAL_BUFFERS_SIZE] = cacheStatus.totalUsedBuffers * 16 * 1024;