Browse Source

Cache pieces info

PR #16238.
adaptive-webui-19844
Vladimir Golovnev 3 years ago committed by GitHub
parent
commit
26352c9eb4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      src/base/bittorrent/torrentimpl.cpp
  2. 3
      src/base/bittorrent/torrentimpl.h

16
src/base/bittorrent/torrentimpl.cpp

@ -44,7 +44,6 @@ @@ -44,7 +44,6 @@
#include <libtorrent/info_hash.hpp>
#endif
#include <QBitArray>
#include <QDebug>
#include <QDir>
#include <QFile>
@ -1250,13 +1249,17 @@ QVector<PeerInfo> TorrentImpl::peers() const @@ -1250,13 +1249,17 @@ QVector<PeerInfo> TorrentImpl::peers() const
QBitArray TorrentImpl::pieces() const
{
QBitArray result(m_nativeStatus.pieces.size());
for (int i = 0; i < result.size(); ++i)
if (m_pieces.isEmpty())
{
if (m_nativeStatus.pieces[lt::piece_index_t {i}])
result.setBit(i, true);
m_pieces.resize(m_nativeStatus.pieces.size());
for (int i = 0; i < m_pieces.size(); ++i)
{
if (m_nativeStatus.pieces[lt::piece_index_t(i)])
m_pieces.setBit(i, true);
}
}
return result;
return m_pieces;
}
QBitArray TorrentImpl::downloadingPieces() const
@ -2094,6 +2097,7 @@ void TorrentImpl::updateStatus() @@ -2094,6 +2097,7 @@ void TorrentImpl::updateStatus()
void TorrentImpl::updateStatus(const lt::torrent_status &nativeStatus)
{
m_pieces.clear();
m_nativeStatus = nativeStatus;
updateState();

3
src/base/bittorrent/torrentimpl.h

@ -37,6 +37,7 @@ @@ -37,6 +37,7 @@
#include <libtorrent/torrent_handle.hpp>
#include <libtorrent/torrent_status.hpp>
#include <QBitArray>
#include <QDateTime>
#include <QHash>
#include <QMap>
@ -320,5 +321,7 @@ namespace BitTorrent @@ -320,5 +321,7 @@ namespace BitTorrent
bool m_unchecked = false;
lt::add_torrent_params m_ltAddTorrentParams;
mutable QBitArray m_pieces;
};
}

Loading…
Cancel
Save