MockPeerStorage.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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> > 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::deque<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::deque<SharedHandle<Peer> >& activePeers)
  33. {
  34. this->activePeers = activePeers;
  35. }
  36. virtual void getActivePeers(std::deque<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. int getNumChokeExecuted() const
  57. {
  58. return _numChokeExecuted;
  59. }
  60. };
  61. #endif // _D_MOCK_PEER_STORAGE_H_
  62. } // namespace aria2