Browse Source

Implement proper equal operators

adaptive-webui-19844
Chocobo1 5 years ago
parent
commit
94f7a095bb
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C
  1. 20
      src/base/bittorrent/tracker.cpp
  2. 5
      src/base/bittorrent/tracker.h
  3. 14
      src/base/tristatebool.h

20
src/base/bittorrent/tracker.cpp

@ -43,16 +43,6 @@ static const int ANNOUNCE_INTERVAL = 1800; // 30min @@ -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 @@ -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)

5
src/base/bittorrent/tracker.h

@ -52,12 +52,13 @@ namespace BitTorrent @@ -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;

14
src/base/tristatebool.h

@ -50,18 +50,18 @@ public: @@ -50,18 +50,18 @@ public:
TriStateBool &operator=(const TriStateBool &other) = default; // add constexpr when using C++17
constexpr bool operator==(const TriStateBool &other) const
constexpr friend bool operator==(const TriStateBool &left, const TriStateBool &right)
{
return (m_value == other.m_value);
}
constexpr bool operator!=(const TriStateBool &other) const
{
return !operator==(other);
return (left.m_value == right.m_value);
}
private:
signed char m_value = -1; // Undefined by default
};
constexpr bool operator!=(const TriStateBool &left, const TriStateBool &right)
{
return !(left == right);
}
#endif // TRISTATEBOOL_H

Loading…
Cancel
Save