MockPeerStorage.h 2.2 KB

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