2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Added BtLeecherStateChoke::PeerEntry::swap(). Also added
	non-member swap for it, which is friend function for
	BtLeecherStateChoke because PeerEntry is private.
	* src/BtLeecherStateChoke.cc
	* src/BtLeecherStateChoke.h
pull/1/head
Tatsuhiro Tsujikawa 2010-11-20 14:52:52 +00:00
parent 4ed364d772
commit 8f46dbc0ab
3 changed files with 49 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added BtLeecherStateChoke::PeerEntry::swap(). Also added
non-member swap for it, which is friend function for
BtLeecherStateChoke because PeerEntry is private.
* src/BtLeecherStateChoke.cc
* src/BtLeecherStateChoke.h
2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added CookieStorage::DomainEntry::swap(). Also added non-member

View File

@ -65,6 +65,14 @@ BtLeecherStateChoke::PeerEntry::PeerEntry(const PeerEntry& c)
regularUnchoker_(c.regularUnchoker_)
{}
void BtLeecherStateChoke::PeerEntry::swap(PeerEntry& c)
{
using std::swap;
swap(peer_, c.peer_);
swap(downloadSpeed_, c.downloadSpeed_);
swap(regularUnchoker_, c.regularUnchoker_);
}
BtLeecherStateChoke::PeerEntry& BtLeecherStateChoke::PeerEntry::operator=
(const PeerEntry& c)
{
@ -123,6 +131,13 @@ bool BtLeecherStateChoke::PeerEntry::operator<(const PeerEntry& peerEntry) const
return downloadSpeed_ > peerEntry.downloadSpeed_;
}
void swap
(BtLeecherStateChoke::PeerEntry& a,
BtLeecherStateChoke::PeerEntry& b)
{
a.swap(b);
}
bool BtLeecherStateChoke::PeerFilter::operator()
(const PeerEntry& peerEntry) const
{
@ -224,3 +239,13 @@ const Timer& BtLeecherStateChoke::getLastRound() const
}
} // namespace aria2
namespace std {
template<>
void swap<aria2::BtLeecherStateChoke::PeerEntry>
(aria2::BtLeecherStateChoke::PeerEntry& a,
aria2::BtLeecherStateChoke::PeerEntry& b)
{
a.swap(b);
}
} // namespace std;

View File

@ -66,6 +66,8 @@ private:
bool operator<(const PeerEntry& rhs) const;
void swap(PeerEntry& c);
const SharedHandle<Peer>& getPeer() const;
unsigned int getDownloadSpeed() const;
@ -114,8 +116,22 @@ public:
void executeChoke(const std::vector<SharedHandle<Peer> >& peerSet);
const Timer& getLastRound() const;
friend void swap(PeerEntry& a, PeerEntry& b);
friend void std::swap<PeerEntry>(PeerEntry& a, PeerEntry& b);
};
void swap
(BtLeecherStateChoke::PeerEntry& a,
BtLeecherStateChoke::PeerEntry& b);
} // namespace aria2
namespace std {
template<>
void swap<aria2::BtLeecherStateChoke::PeerEntry>
(aria2::BtLeecherStateChoke::PeerEntry& a,
aria2::BtLeecherStateChoke::PeerEntry& b);
} // namespace std
#endif // D_BT_LEECHER_STATE_CHOKE_H