mirror of https://github.com/aria2/aria2
103 lines
2.4 KiB
C++
103 lines
2.4 KiB
C++
#ifndef D_MOCK_PEER_STORAGE_H
|
|
# define D_MOCK_PEER_STORAGE_H
|
|
|
|
# include "PeerStorage.h"
|
|
|
|
# include <algorithm>
|
|
|
|
# include "Peer.h"
|
|
|
|
namespace aria2 {
|
|
|
|
class MockPeerStorage : public PeerStorage {
|
|
private:
|
|
std::deque<std::shared_ptr<Peer>> unusedPeers;
|
|
PeerSet usedPeers;
|
|
std::deque<std::shared_ptr<Peer>> droppedPeers;
|
|
std::vector<std::shared_ptr<Peer>> activePeers;
|
|
int numChokeExecuted_;
|
|
|
|
public:
|
|
MockPeerStorage() : numChokeExecuted_(0) {}
|
|
virtual ~MockPeerStorage() {}
|
|
|
|
virtual bool addPeer(const std::shared_ptr<Peer>& peer) CXX11_OVERRIDE
|
|
{
|
|
unusedPeers.push_back(peer);
|
|
return true;
|
|
}
|
|
|
|
virtual void
|
|
addPeer(const std::vector<std::shared_ptr<Peer>>& peers) CXX11_OVERRIDE
|
|
{
|
|
unusedPeers.insert(unusedPeers.end(), peers.begin(), peers.end());
|
|
}
|
|
|
|
const std::deque<std::shared_ptr<Peer>>& getUnusedPeers()
|
|
{
|
|
return unusedPeers;
|
|
}
|
|
|
|
virtual std::shared_ptr<Peer>
|
|
addAndCheckoutPeer(const std::shared_ptr<Peer>& peer,
|
|
cuid_t cuid) CXX11_OVERRIDE
|
|
{
|
|
unusedPeers.push_back(peer);
|
|
return nullptr;
|
|
}
|
|
|
|
virtual size_t countAllPeer() const CXX11_OVERRIDE
|
|
{
|
|
return unusedPeers.size() + usedPeers.size();
|
|
}
|
|
|
|
virtual const std::deque<std::shared_ptr<Peer>>&
|
|
getDroppedPeers() CXX11_OVERRIDE
|
|
{
|
|
return droppedPeers;
|
|
}
|
|
|
|
void addDroppedPeer(const std::shared_ptr<Peer>& peer)
|
|
{
|
|
droppedPeers.push_back(peer);
|
|
}
|
|
|
|
virtual bool isPeerAvailable() CXX11_OVERRIDE { return false; }
|
|
|
|
void setActivePeers(const std::vector<std::shared_ptr<Peer>>& activePeers)
|
|
{
|
|
this->activePeers = activePeers;
|
|
}
|
|
|
|
void getActivePeers(std::vector<std::shared_ptr<Peer>>& peers)
|
|
{
|
|
peers.insert(peers.end(), activePeers.begin(), activePeers.end());
|
|
}
|
|
|
|
virtual const PeerSet& getUsedPeers() CXX11_OVERRIDE { return usedPeers; }
|
|
|
|
virtual bool isBadPeer(const std::string& ipaddr) CXX11_OVERRIDE
|
|
{
|
|
return false;
|
|
}
|
|
|
|
virtual void addBadPeer(const std::string& ipaddr) CXX11_OVERRIDE {}
|
|
|
|
virtual std::shared_ptr<Peer> checkoutPeer(cuid_t cuid) CXX11_OVERRIDE
|
|
{
|
|
return nullptr;
|
|
}
|
|
|
|
virtual void returnPeer(const std::shared_ptr<Peer>& peer) CXX11_OVERRIDE {}
|
|
|
|
virtual bool chokeRoundIntervalElapsed() CXX11_OVERRIDE { return false; }
|
|
|
|
virtual void executeChoke() CXX11_OVERRIDE { ++numChokeExecuted_; }
|
|
|
|
int getNumChokeExecuted() const { return numChokeExecuted_; }
|
|
};
|
|
|
|
#endif // D_MOCK_PEER_STORAGE_H
|
|
|
|
} // namespace aria2
|