MockDHTMessageFactory.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. #ifndef _D_MOCK_DHT_MESSAGE_FACTORY_H_
  2. #define _D_MOCK_DHT_MESSAGE_FACTORY_H_
  3. #include "DHTMessageFactory.h"
  4. #include "DHTNode.h"
  5. #include "MockDHTMessage.h"
  6. #include "Dictionary.h"
  7. #include "Data.h"
  8. namespace aria2 {
  9. class MockDHTMessageFactory:public DHTMessageFactory {
  10. protected:
  11. SharedHandle<DHTNode> _localNode;
  12. public:
  13. MockDHTMessageFactory() {}
  14. virtual ~MockDHTMessageFactory() {}
  15. virtual SharedHandle<DHTMessage>
  16. createQueryMessage(const Dictionary* d,
  17. const std::string& ipaddr, uint16_t port)
  18. {
  19. return SharedHandle<DHTMessage>();
  20. }
  21. virtual SharedHandle<DHTMessage>
  22. createResponseMessage(const std::string& messageType,
  23. const Dictionary* d,
  24. const std::string& ipaddr, uint16_t port)
  25. {
  26. SharedHandle<DHTNode> remoteNode(new DHTNode());
  27. // TODO At this point, removeNode's ID is random.
  28. remoteNode->setIPAddress(ipaddr);
  29. remoteNode->setPort(port);
  30. SharedHandle<MockDHTMessage> m
  31. (new MockDHTMessage(_localNode, remoteNode,
  32. reinterpret_cast<const Data*>(d->get("t"))->toString()));
  33. m->setReply(true);
  34. return m;
  35. }
  36. virtual SharedHandle<DHTMessage>
  37. createPingMessage(const SharedHandle<DHTNode>& remoteNode,
  38. const std::string& transactionID = "")
  39. {
  40. return SharedHandle<DHTMessage>();
  41. }
  42. virtual SharedHandle<DHTMessage>
  43. createPingReplyMessage(const SharedHandle<DHTNode>& remoteNode,
  44. const unsigned char* remoteNodeID,
  45. const std::string& transactionID)
  46. {
  47. return SharedHandle<DHTMessage>();
  48. }
  49. virtual SharedHandle<DHTMessage>
  50. createFindNodeMessage(const SharedHandle<DHTNode>& remoteNode,
  51. const unsigned char* targetNodeID,
  52. const std::string& transactionID = "")
  53. {
  54. return SharedHandle<DHTMessage>();
  55. }
  56. virtual SharedHandle<DHTMessage>
  57. createFindNodeReplyMessage(const SharedHandle<DHTNode>& remoteNode,
  58. const std::deque<SharedHandle<DHTNode> >& closestKNodes,
  59. const std::string& transactionID)
  60. {
  61. return SharedHandle<DHTMessage>();
  62. }
  63. virtual SharedHandle<DHTMessage>
  64. createGetPeersMessage(const SharedHandle<DHTNode>& remoteNode,
  65. const unsigned char* infoHash,
  66. const std::string& transactionID)
  67. {
  68. return SharedHandle<DHTMessage>();
  69. }
  70. virtual SharedHandle<DHTMessage>
  71. createGetPeersReplyMessage(const SharedHandle<DHTNode>& remoteNode,
  72. const std::deque<SharedHandle<DHTNode> >& closestKNodes,
  73. const std::string& token,
  74. const std::string& transactionID)
  75. {
  76. return SharedHandle<DHTMessage>();
  77. }
  78. virtual SharedHandle<DHTMessage>
  79. createGetPeersReplyMessage(const SharedHandle<DHTNode>& remoteNode,
  80. const std::deque<SharedHandle<Peer> >& peers,
  81. const std::string& token,
  82. const std::string& transactionID)
  83. {
  84. return SharedHandle<DHTMessage>();
  85. }
  86. virtual SharedHandle<DHTMessage>
  87. createAnnouncePeerMessage(const SharedHandle<DHTNode>& remoteNode,
  88. const unsigned char* infoHash,
  89. uint16_t tcpPort,
  90. const std::string& token,
  91. const std::string& transactionID = "")
  92. {
  93. return SharedHandle<DHTMessage>();
  94. }
  95. virtual SharedHandle<DHTMessage>
  96. createAnnouncePeerReplyMessage(const SharedHandle<DHTNode>& remoteNode,
  97. const std::string& transactionID)
  98. {
  99. return SharedHandle<DHTMessage>();
  100. }
  101. virtual SharedHandle<DHTMessage>
  102. createUnknownMessage(const unsigned char* data, size_t length,
  103. const std::string& ipaddr, uint16_t port)
  104. {
  105. return SharedHandle<DHTMessage>();
  106. }
  107. void setLocalNode(const SharedHandle<DHTNode>& node)
  108. {
  109. _localNode = node;
  110. }
  111. };
  112. } // namespace aria2
  113. #endif // _D_MOCK_DHT_MESSAGE_FACTORY_H_