mirror of https://github.com/aria2/aria2
DefaultPeerStorage: Code cleanup
parent
234dd76cd4
commit
6d2dd2ab18
|
@ -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",
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue