MockPeerStorage.h 2.0 KB

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