|
|
@ -229,25 +229,16 @@ QString PeerInfo::connectionType() const |
|
|
|
void PeerInfo::calcRelevance(const Torrent *torrent) |
|
|
|
void PeerInfo::calcRelevance(const Torrent *torrent) |
|
|
|
{ |
|
|
|
{ |
|
|
|
const QBitArray allPieces = torrent->pieces(); |
|
|
|
const QBitArray allPieces = torrent->pieces(); |
|
|
|
const QBitArray peerPieces = pieces(); |
|
|
|
const int localMissing = allPieces.count(false); |
|
|
|
|
|
|
|
if (localMissing <= 0) |
|
|
|
int localMissing = 0; |
|
|
|
|
|
|
|
int remoteHaves = 0; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < allPieces.size(); ++i) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
if (!allPieces[i]) |
|
|
|
m_relevance = 0; |
|
|
|
{ |
|
|
|
return; |
|
|
|
++localMissing; |
|
|
|
|
|
|
|
if (peerPieces[i]) |
|
|
|
|
|
|
|
++remoteHaves; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (localMissing == 0) |
|
|
|
const QBitArray peerPieces = pieces(); |
|
|
|
m_relevance = 0.0; |
|
|
|
const int remoteHaves = (peerPieces & (~allPieces)).count(true); |
|
|
|
else |
|
|
|
m_relevance = static_cast<qreal>(remoteHaves) / localMissing; |
|
|
|
m_relevance = static_cast<qreal>(remoteHaves) / localMissing; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
qreal PeerInfo::relevance() const |
|
|
|
qreal PeerInfo::relevance() const |
|
|
|