/* */ #ifndef D_DHT_MESSAGE_DISPATCHER_IMPL_H #define D_DHT_MESSAGE_DISPATCHER_IMPL_H #include "DHTMessageDispatcher.h" #include namespace aria2 { class DHTMessageTracker; struct DHTMessageEntry; class DHTMessageDispatcherImpl:public DHTMessageDispatcher { private: std::shared_ptr tracker_; std::deque> messageQueue_; time_t timeout_; bool sendMessage(DHTMessageEntry* msg); public: DHTMessageDispatcherImpl(const std::shared_ptr& tracker); virtual void addMessageToQueue(std::unique_ptr message, time_t timeout, std::unique_ptr callback = std::unique_ptr{}) CXX11_OVERRIDE; virtual void addMessageToQueue(std::unique_ptr message, std::unique_ptr callback = std::unique_ptr{}) CXX11_OVERRIDE; virtual void sendMessages() CXX11_OVERRIDE; virtual size_t countMessageInQueue() const CXX11_OVERRIDE; void setTimeout(time_t timeout) { timeout_ = timeout; } }; } // namespace aria2 #endif // D_DHT_MESSAGE_DISPATCHER_IMPL_H