MockDHTMessageDispatcher.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #ifndef _D_MOCK_DHT_MESSAGE_DISPATCHER_H_
  2. #define _D_MOCK_DHT_MESSAGE_DISPATCHER_H_
  3. #include "DHTMessageDispatcher.h"
  4. #include "DHTMessageCallback.h"
  5. #include "DHTMessage.h"
  6. #include "DHTConstants.h"
  7. namespace aria2 {
  8. class MockDHTMessageDispatcher:public DHTMessageDispatcher {
  9. public:
  10. class Entry {
  11. public:
  12. SharedHandle<DHTMessage> _message;
  13. time_t _timeout;
  14. SharedHandle<DHTMessageCallback> _callback;
  15. Entry(const SharedHandle<DHTMessage>& message, time_t timeout,
  16. const SharedHandle<DHTMessageCallback>& callback):
  17. _message(message),
  18. _timeout(timeout),
  19. _callback(callback) {}
  20. };
  21. std::deque<Entry> _messageQueue;
  22. public:
  23. MockDHTMessageDispatcher() {}
  24. virtual ~MockDHTMessageDispatcher() {}
  25. virtual void
  26. addMessageToQueue(const SharedHandle<DHTMessage>& message,
  27. time_t timeout,
  28. const SharedHandle<DHTMessageCallback>& callback = 0)
  29. {
  30. _messageQueue.push_back(Entry(message, timeout, callback));
  31. }
  32. virtual void
  33. addMessageToQueue(const SharedHandle<DHTMessage>& message,
  34. const SharedHandle<DHTMessageCallback>& callback = 0)
  35. {
  36. _messageQueue.push_back(Entry(message, DHT_MESSAGE_TIMEOUT, callback));
  37. }
  38. virtual void sendMessages() {}
  39. virtual size_t countMessageInQueue() const
  40. {
  41. return _messageQueue.size();
  42. }
  43. };
  44. } // namespace aria2
  45. #endif // _D_MOCK_DHT_MESSAGE_DISPATCHER_H_