/* */ #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: SharedHandle tracker_; std::deque > messageQueue_; time_t timeout_; bool sendMessage(const SharedHandle& msg); public: DHTMessageDispatcherImpl(const SharedHandle& tracker); virtual ~DHTMessageDispatcherImpl(); virtual void addMessageToQueue(const SharedHandle& message, time_t timeout, const SharedHandle& callback = SharedHandle()); virtual void addMessageToQueue(const SharedHandle& message, const SharedHandle& callback = SharedHandle()); virtual void sendMessages(); virtual size_t countMessageInQueue() const; void setTimeout(time_t timeout) { timeout_ = timeout; } }; } // namespace aria2 #endif // D_DHT_MESSAGE_DISPATCHER_IMPL_H