Implement proper equal operators

This commit is contained in:
Chocobo1
2019-08-08 23:19:53 +08:00
parent d639c16f72
commit 94f7a095bb
3 changed files with 20 additions and 19 deletions

View File

@@ -43,16 +43,6 @@ static const int ANNOUNCE_INTERVAL = 1800; // 30min
using namespace BitTorrent;
// Peer
bool Peer::operator!=(const Peer &other) const
{
return uid() != other.uid();
}
bool Peer::operator==(const Peer &other) const
{
return uid() == other.uid();
}
QString Peer::uid() const
{
return ip.toString() + ':' + QString::number(port);
@@ -69,6 +59,16 @@ lt::entry Peer::toEntry(const bool noPeerId) const
return lt::entry(peerMap);
}
bool BitTorrent::operator==(const Peer &left, const Peer &right)
{
return left.uid() == right.uid();
}
bool BitTorrent::operator!=(const Peer &left, const Peer &right)
{
return !(left == right);
}
// Tracker
Tracker::Tracker(QObject *parent)

View File

@@ -52,12 +52,13 @@ namespace BitTorrent
QByteArray peerId;
int port;
bool operator!=(const Peer &other) const;
bool operator==(const Peer &other) const;
QString uid() const;
lt::entry toEntry(bool noPeerId) const;
};
bool operator==(const Peer &left, const Peer &right);
bool operator!=(const Peer &left, const Peer &right);
struct TrackerAnnounceRequest
{
QByteArray infoHash;