DefaultPeerStorage: Code cleanup

pull/150/head
Tatsuhiro Tsujikawa 2013-10-26 21:26:41 +09:00
parent 234dd76cd4
commit 6d2dd2ab18
2 changed files with 20 additions and 21 deletions

View File

@ -60,15 +60,13 @@ const size_t MAX_PEER_LIST_UPDATE = 100;
DefaultPeerStorage::DefaultPeerStorage() DefaultPeerStorage::DefaultPeerStorage()
: maxPeerListSize_(MAX_PEER_LIST_SIZE), : maxPeerListSize_(MAX_PEER_LIST_SIZE),
seederStateChoke_(new BtSeederStateChoke()), seederStateChoke_(make_unique<BtSeederStateChoke>()),
leecherStateChoke_(new BtLeecherStateChoke()), leecherStateChoke_(make_unique<BtLeecherStateChoke>()),
lastTransferStatMapUpdated_(0) lastTransferStatMapUpdated_(0)
{} {}
DefaultPeerStorage::~DefaultPeerStorage() DefaultPeerStorage::~DefaultPeerStorage()
{ {
delete seederStateChoke_;
delete leecherStateChoke_;
assert(uniqPeers_.size() == unusedPeers_.size() + usedPeers_.size()); assert(uniqPeers_.size() == unusedPeers_.size() + usedPeers_.size());
} }
@ -112,13 +110,14 @@ bool DefaultPeerStorage::addPeer(const std::shared_ptr<Peer>& peer)
return true; return true;
} }
void DefaultPeerStorage::addPeer(const std::vector<std::shared_ptr<Peer> >& peers) void DefaultPeerStorage::addPeer
(const std::vector<std::shared_ptr<Peer>>& peers)
{ {
size_t added = 0; size_t added = 0;
size_t addMax = std::min(maxPeerListSize_, MAX_PEER_LIST_UPDATE); size_t addMax = std::min(maxPeerListSize_, MAX_PEER_LIST_UPDATE);
for(auto itr = peers.begin(), for(auto itr = std::begin(peers), eoi = std::end(peers);
eoi = peers.end(); itr != eoi && added < addMax; ++itr) { itr != eoi && added < addMax; ++itr) {
const std::shared_ptr<Peer>& peer = *itr; auto& peer = *itr;
if(isPeerAlreadyAdded(peer)) { if(isPeerAlreadyAdded(peer)) {
A2_LOG_DEBUG(fmt("Adding %s:%u is rejected because it has been already" A2_LOG_DEBUG(fmt("Adding %s:%u is rejected because it has been already"
" added.", " added.",
@ -148,8 +147,8 @@ void DefaultPeerStorage::addDroppedPeer(const std::shared_ptr<Peer>& peer)
{ {
// Make sure that no duplicated peer exists in droppedPeers_. If // Make sure that no duplicated peer exists in droppedPeers_. If
// exists, erase older one. // exists, erase older one.
for(auto i = droppedPeers_.begin(), for(auto i = std::begin(droppedPeers_), eoi = std::end(droppedPeers_);
eoi = droppedPeers_.end(); i != eoi; ++i) { i != eoi; ++i) {
if((*i)->getIPAddress() == peer->getIPAddress() && if((*i)->getIPAddress() == peer->getIPAddress() &&
(*i)->getPort() == peer->getPort()) { (*i)->getPort() == peer->getPort()) {
droppedPeers_.erase(i); droppedPeers_.erase(i);
@ -162,7 +161,7 @@ void DefaultPeerStorage::addDroppedPeer(const std::shared_ptr<Peer>& peer)
} }
} }
const std::deque<std::shared_ptr<Peer> >& DefaultPeerStorage::getUnusedPeers() const std::deque<std::shared_ptr<Peer>>& DefaultPeerStorage::getUnusedPeers()
{ {
return unusedPeers_; return unusedPeers_;
} }
@ -172,7 +171,7 @@ const PeerSet& DefaultPeerStorage::getUsedPeers()
return usedPeers_; return usedPeers_;
} }
const std::deque<std::shared_ptr<Peer> >& DefaultPeerStorage::getDroppedPeers() const std::deque<std::shared_ptr<Peer>>& DefaultPeerStorage::getDroppedPeers()
{ {
return droppedPeers_; return droppedPeers_;
} }
@ -229,7 +228,7 @@ std::shared_ptr<Peer> DefaultPeerStorage::checkoutPeer(cuid_t cuid)
if(!isPeerAvailable()) { if(!isPeerAvailable()) {
return nullptr; return nullptr;
} }
std::shared_ptr<Peer> peer = unusedPeers_.front(); auto peer = unusedPeers_.front();
unusedPeers_.pop_front(); unusedPeers_.pop_front();
if(peer->usedBy() != 0) { if(peer->usedBy() != 0) {
A2_LOG_WARN(fmt("CUID#%" PRId64 " is already set for peer %s:%u", A2_LOG_WARN(fmt("CUID#%" PRId64 " is already set for peer %s:%u",

View File

@ -57,17 +57,17 @@ private:
// This contains ip address and port pair and is used to ensure that // This contains ip address and port pair and is used to ensure that
// no duplicate peers are stored. // no duplicate peers are stored.
std::set<std::pair<std::string, uint16_t> > uniqPeers_; std::set<std::pair<std::string, uint16_t>> uniqPeers_;
// Unused (not connected) peers, sorted by last added. // Unused (not connected) peers, sorted by last added.
std::deque<std::shared_ptr<Peer> > unusedPeers_; std::deque<std::shared_ptr<Peer>> unusedPeers_;
// The set of used peers. Some of them are not connected yet. To // The set of used peers. Some of them are not connected yet. To
// know it is connected or not, call Peer::isActive(). // know it is connected or not, call Peer::isActive().
PeerSet usedPeers_; PeerSet usedPeers_;
std::deque<std::shared_ptr<Peer> > droppedPeers_; std::deque<std::shared_ptr<Peer>> droppedPeers_;
BtSeederStateChoke* seederStateChoke_; std::unique_ptr<BtSeederStateChoke> seederStateChoke_;
BtLeecherStateChoke* leecherStateChoke_; std::unique_ptr<BtLeecherStateChoke> leecherStateChoke_;
Timer lastTransferStatMapUpdated_; Timer lastTransferStatMapUpdated_;
@ -90,14 +90,14 @@ public:
std::shared_ptr<Peer> getPeer(const std::string& ipaddr, uint16_t port) const; std::shared_ptr<Peer> getPeer(const std::string& ipaddr, uint16_t port) const;
virtual void addPeer(const std::vector<std::shared_ptr<Peer> >& peers) virtual void addPeer(const std::vector<std::shared_ptr<Peer>>& peers)
CXX11_OVERRIDE; CXX11_OVERRIDE;
const std::deque<std::shared_ptr<Peer> >& getUnusedPeers(); const std::deque<std::shared_ptr<Peer>>& getUnusedPeers();
virtual const PeerSet& getUsedPeers() CXX11_OVERRIDE; virtual const PeerSet& getUsedPeers() CXX11_OVERRIDE;
virtual const std::deque<std::shared_ptr<Peer> >& getDroppedPeers() virtual const std::deque<std::shared_ptr<Peer>>& getDroppedPeers()
CXX11_OVERRIDE; CXX11_OVERRIDE;
virtual bool isPeerAvailable() CXX11_OVERRIDE; virtual bool isPeerAvailable() CXX11_OVERRIDE;