MockDHTMessage.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #ifndef D_MOCK_DHT_MESSAGE_H
  2. #define D_MOCK_DHT_MESSAGE_H
  3. #include "DHTMessage.h"
  4. #include "DHTQueryMessage.h"
  5. #include "DHTResponseMessage.h"
  6. #include <deque>
  7. #include "DHTNode.h"
  8. #include "Peer.h"
  9. namespace aria2 {
  10. class DHTMessageCallback;
  11. class MockDHTMessage : public DHTMessage {
  12. public:
  13. bool isReply_;
  14. std::string messageType_;
  15. std::vector<std::shared_ptr<DHTNode>> nodes_;
  16. std::vector<std::shared_ptr<Peer>> peers_;
  17. std::string token_;
  18. public:
  19. MockDHTMessage(const std::shared_ptr<DHTNode>& localNode,
  20. const std::shared_ptr<DHTNode>& remoteNode,
  21. const std::string& messageType = "mock",
  22. const std::string& transactionID = "")
  23. : DHTMessage(localNode, remoteNode, transactionID),
  24. isReply_(false),
  25. messageType_(messageType)
  26. {
  27. }
  28. virtual ~MockDHTMessage() {}
  29. virtual void doReceivedAction() CXX11_OVERRIDE {}
  30. virtual bool send() CXX11_OVERRIDE { return true; }
  31. virtual bool isReply() const CXX11_OVERRIDE { return isReply_; }
  32. void setReply(bool f) { isReply_ = f; }
  33. virtual const std::string& getMessageType() const CXX11_OVERRIDE
  34. {
  35. return messageType_;
  36. }
  37. virtual std::string toString() const CXX11_OVERRIDE
  38. {
  39. return "MockDHTMessage";
  40. }
  41. };
  42. class MockDHTQueryMessage : public DHTQueryMessage {
  43. public:
  44. std::string messageType_;
  45. std::vector<std::shared_ptr<DHTNode>> nodes_;
  46. std::vector<std::shared_ptr<Peer>> peers_;
  47. std::string token_;
  48. public:
  49. MockDHTQueryMessage(const std::shared_ptr<DHTNode>& localNode,
  50. const std::shared_ptr<DHTNode>& remoteNode,
  51. const std::string& messageType = "mock",
  52. const std::string& transactionID = "")
  53. : DHTQueryMessage(localNode, remoteNode, transactionID),
  54. messageType_(messageType)
  55. {
  56. }
  57. virtual ~MockDHTQueryMessage() {}
  58. virtual void doReceivedAction() CXX11_OVERRIDE {}
  59. virtual bool send() CXX11_OVERRIDE { return true; }
  60. virtual bool isReply() const CXX11_OVERRIDE { return false; }
  61. virtual const std::string& getMessageType() const CXX11_OVERRIDE
  62. {
  63. return messageType_;
  64. }
  65. virtual std::string toString() const CXX11_OVERRIDE
  66. {
  67. return "MockDHTMessage";
  68. }
  69. virtual std::unique_ptr<Dict> getArgument() CXX11_OVERRIDE
  70. {
  71. return Dict::g();
  72. }
  73. };
  74. class MockDHTResponseMessage : public DHTResponseMessage {
  75. public:
  76. std::string messageType_;
  77. std::vector<std::shared_ptr<DHTNode>> nodes_;
  78. std::vector<std::shared_ptr<Peer>> peers_;
  79. std::string token_;
  80. public:
  81. MockDHTResponseMessage(const std::shared_ptr<DHTNode>& localNode,
  82. const std::shared_ptr<DHTNode>& remoteNode,
  83. const std::string& messageType = "mock",
  84. const std::string& transactionID = "")
  85. : DHTResponseMessage(localNode, remoteNode, transactionID),
  86. messageType_(messageType)
  87. {
  88. }
  89. virtual ~MockDHTResponseMessage() {}
  90. virtual void doReceivedAction() CXX11_OVERRIDE {}
  91. virtual bool send() CXX11_OVERRIDE { return true; }
  92. virtual bool isReply() const CXX11_OVERRIDE { return true; }
  93. virtual const std::string& getMessageType() const CXX11_OVERRIDE
  94. {
  95. return messageType_;
  96. }
  97. virtual std::string toString() const CXX11_OVERRIDE
  98. {
  99. return "MockDHTMessage";
  100. }
  101. virtual std::unique_ptr<Dict> getResponse() CXX11_OVERRIDE
  102. {
  103. return Dict::g();
  104. }
  105. virtual void accept(DHTMessageCallback* callback) CXX11_OVERRIDE {}
  106. };
  107. } // namespace aria2
  108. #endif // D_MOCK_DHT_MESSAGE_H