MockPeerStorage.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #ifndef D_MOCK_PEER_STORAGE_H
  2. #define D_MOCK_PEER_STORAGE_H
  3. #include "PeerStorage.h"
  4. #include <algorithm>
  5. #include "Peer.h"
  6. namespace aria2 {
  7. class MockPeerStorage : public PeerStorage {
  8. private:
  9. std::deque<std::shared_ptr<Peer>> unusedPeers;
  10. PeerSet usedPeers;
  11. std::deque<std::shared_ptr<Peer>> droppedPeers;
  12. std::vector<std::shared_ptr<Peer>> activePeers;
  13. int numChokeExecuted_;
  14. public:
  15. MockPeerStorage() : numChokeExecuted_(0) {}
  16. virtual ~MockPeerStorage() {}
  17. virtual bool addPeer(const std::shared_ptr<Peer>& peer) CXX11_OVERRIDE
  18. {
  19. unusedPeers.push_back(peer);
  20. return true;
  21. }
  22. virtual void
  23. addPeer(const std::vector<std::shared_ptr<Peer>>& peers) CXX11_OVERRIDE
  24. {
  25. unusedPeers.insert(unusedPeers.end(), peers.begin(), peers.end());
  26. }
  27. const std::deque<std::shared_ptr<Peer>>& getUnusedPeers()
  28. {
  29. return unusedPeers;
  30. }
  31. virtual std::shared_ptr<Peer>
  32. addAndCheckoutPeer(const std::shared_ptr<Peer>& peer, cuid_t cuid) CXX11_OVERRIDE
  33. {
  34. unusedPeers.push_back(peer);
  35. return nullptr;
  36. }
  37. virtual size_t countAllPeer() const CXX11_OVERRIDE
  38. {
  39. return unusedPeers.size() + usedPeers.size();
  40. }
  41. virtual const std::deque<std::shared_ptr<Peer>>&
  42. getDroppedPeers() CXX11_OVERRIDE
  43. {
  44. return droppedPeers;
  45. }
  46. void addDroppedPeer(const std::shared_ptr<Peer>& peer)
  47. {
  48. droppedPeers.push_back(peer);
  49. }
  50. virtual bool isPeerAvailable() CXX11_OVERRIDE { return false; }
  51. void setActivePeers(const std::vector<std::shared_ptr<Peer>>& activePeers)
  52. {
  53. this->activePeers = activePeers;
  54. }
  55. void getActivePeers(std::vector<std::shared_ptr<Peer>>& peers)
  56. {
  57. peers.insert(peers.end(), activePeers.begin(), activePeers.end());
  58. }
  59. virtual const PeerSet& getUsedPeers() CXX11_OVERRIDE { return usedPeers; }
  60. virtual bool isBadPeer(const std::string& ipaddr) CXX11_OVERRIDE
  61. {
  62. return false;
  63. }
  64. virtual void addBadPeer(const std::string& ipaddr) CXX11_OVERRIDE {}
  65. virtual std::shared_ptr<Peer> checkoutPeer(cuid_t cuid) CXX11_OVERRIDE
  66. {
  67. return nullptr;
  68. }
  69. virtual void returnPeer(const std::shared_ptr<Peer>& peer) CXX11_OVERRIDE {}
  70. virtual bool chokeRoundIntervalElapsed() CXX11_OVERRIDE { return false; }
  71. virtual void executeChoke() CXX11_OVERRIDE { ++numChokeExecuted_; }
  72. int getNumChokeExecuted() const { return numChokeExecuted_; }
  73. };
  74. #endif // D_MOCK_PEER_STORAGE_H
  75. } // namespace aria2