MockPeerStorage.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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<SharedHandle<Peer> > peers;
  10. std::deque<SharedHandle<Peer> > droppedPeers;
  11. std::vector<SharedHandle<Peer> > activePeers;
  12. int numChokeExecuted_;
  13. public:
  14. MockPeerStorage():numChokeExecuted_(0) {}
  15. virtual ~MockPeerStorage() {}
  16. virtual bool addPeer(const SharedHandle<Peer>& peer) {
  17. peers.push_back(peer);
  18. return true;
  19. }
  20. virtual void addPeer(const std::vector<SharedHandle<Peer> >& peers) {
  21. std::copy(peers.begin(), peers.end(), back_inserter(this->peers));
  22. }
  23. virtual const std::deque<SharedHandle<Peer> >& getPeers() {
  24. return peers;
  25. }
  26. virtual size_t countPeer() const
  27. {
  28. return peers.size();
  29. }
  30. virtual const std::deque<SharedHandle<Peer> >& getDroppedPeers() {
  31. return droppedPeers;
  32. }
  33. void addDroppedPeer(const SharedHandle<Peer>& peer) {
  34. droppedPeers.push_back(peer);
  35. }
  36. virtual SharedHandle<Peer> getUnusedPeer() {
  37. return SharedHandle<Peer>();
  38. }
  39. virtual bool isPeerAvailable() {
  40. return false;
  41. }
  42. void setActivePeers(const std::vector<SharedHandle<Peer> >& activePeers)
  43. {
  44. this->activePeers = activePeers;
  45. }
  46. virtual void getActivePeers(std::vector<SharedHandle<Peer> >& peers) {
  47. peers.insert(peers.end(), activePeers.begin(), activePeers.end());
  48. }
  49. virtual bool isBadPeer(const std::string& ipaddr)
  50. {
  51. return false;
  52. }
  53. virtual void addBadPeer(const std::string& ipaddr)
  54. {
  55. }
  56. virtual void returnPeer(const SharedHandle<Peer>& peer)
  57. {
  58. }
  59. virtual bool chokeRoundIntervalElapsed()
  60. {
  61. return false;
  62. }
  63. virtual void executeChoke()
  64. {
  65. ++numChokeExecuted_;
  66. }
  67. int getNumChokeExecuted() const
  68. {
  69. return numChokeExecuted_;
  70. }
  71. };
  72. #endif // D_MOCK_PEER_STORAGE_H
  73. } // namespace aria2