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
 |