MockPeerStorage.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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::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 SharedHandle<Peer> getUnusedPeer() {
  27. return SharedHandle<Peer>();
  28. }
  29. virtual bool isPeerAvailable() {
  30. return false;
  31. }
  32. void setActivePeers(const std::vector<SharedHandle<Peer> >& activePeers)
  33. {
  34. this->activePeers = activePeers;
  35. }
  36. virtual void getActivePeers(std::vector<SharedHandle<Peer> >& peers) {
  37. peers.insert(peers.end(), activePeers.begin(), activePeers.end());
  38. }
  39. virtual TransferStat calculateStat() {
  40. return stat;
  41. }
  42. void setStat(const TransferStat& stat) {
  43. this->stat = stat;
  44. }
  45. virtual void returnPeer(const SharedHandle<Peer>& peer)
  46. {
  47. }
  48. virtual bool chokeRoundIntervalElapsed()
  49. {
  50. return false;
  51. }
  52. virtual void executeChoke()
  53. {
  54. ++_numChokeExecuted;
  55. }
  56. virtual void updateTransferStatFor(const SharedHandle<Peer>& peer) {}
  57. virtual TransferStat getTransferStatFor(const SharedHandle<Peer>& peer)
  58. {
  59. return TransferStat();
  60. }
  61. int getNumChokeExecuted() const
  62. {
  63. return _numChokeExecuted;
  64. }
  65. };
  66. #endif // _D_MOCK_PEER_STORAGE_H_
  67. } // namespace aria2